Soumettre la recherche
Mettre en ligne
20130927 perlbeginners 10 time-piece
•
Télécharger en tant que PPT, PDF
•
1 j'aime
•
691 vues
S
Syun Fuji
Suivre
Time::Piece を使っていて気をつけること。
Lire moins
Lire la suite
Technologie
Signaler
Partager
Signaler
Partager
1 sur 24
Télécharger maintenant
Recommandé
私とC++ in 例外安全day
私とC++ in 例外安全day
Tatsuya Ishikawa
サーバ擬人化ユーザ会Lt資料 qpstudy lite
サーバ擬人化ユーザ会Lt資料 qpstudy lite
Seiichiro Ishida
CoffeeScript+enchant.jsでクロージャが気持よくかけた話
CoffeeScript+enchant.jsでクロージャが気持よくかけた話
Yusuke HIDESHIMA
WebVR空間の巨大スクリーンでteratailを見れるか試してみた話
WebVR空間の巨大スクリーンでteratailを見れるか試してみた話
Yusaku Kinoshita
【非エンジニアが 「明日からDevRelやってよ」って 突然言われて1年半やってきたこと ~teratailのDevRel担当、ゼロからの奮闘記~ @a...
【非エンジニアが 「明日からDevRelやってよ」って 突然言われて1年半やってきたこと ~teratailのDevRel担当、ゼロからの奮闘記~ @a...
Yusaku Kinoshita
C#初心者がxamarinに手を出してみた
C#初心者がxamarinに手を出してみた
Iosif Takakura
Git Boot Camp for Designer
Git Boot Camp for Designer
Takashi Takebayashi
Jjug ナイト・セミナー くわっちょ 20140822
Jjug ナイト・セミナー くわっちょ 20140822
くわっ ちょ
Recommandé
私とC++ in 例外安全day
私とC++ in 例外安全day
Tatsuya Ishikawa
サーバ擬人化ユーザ会Lt資料 qpstudy lite
サーバ擬人化ユーザ会Lt資料 qpstudy lite
Seiichiro Ishida
CoffeeScript+enchant.jsでクロージャが気持よくかけた話
CoffeeScript+enchant.jsでクロージャが気持よくかけた話
Yusuke HIDESHIMA
WebVR空間の巨大スクリーンでteratailを見れるか試してみた話
WebVR空間の巨大スクリーンでteratailを見れるか試してみた話
Yusaku Kinoshita
【非エンジニアが 「明日からDevRelやってよ」って 突然言われて1年半やってきたこと ~teratailのDevRel担当、ゼロからの奮闘記~ @a...
【非エンジニアが 「明日からDevRelやってよ」って 突然言われて1年半やってきたこと ~teratailのDevRel担当、ゼロからの奮闘記~ @a...
Yusaku Kinoshita
C#初心者がxamarinに手を出してみた
C#初心者がxamarinに手を出してみた
Iosif Takakura
Git Boot Camp for Designer
Git Boot Camp for Designer
Takashi Takebayashi
Jjug ナイト・セミナー くわっちょ 20140822
Jjug ナイト・セミナー くわっちょ 20140822
くわっ ちょ
20130725 perl beginners_9
20130725 perl beginners_9
Syun Fuji
Time band
Time band
Syun Fuji
そんなスクラムなら 止めちまえ
そんなスクラムなら 止めちまえ
Syun Fuji
20131128 perl beginners_11_profiler
20131128 perl beginners_11_profiler
Syun Fuji
Learn BEM: CSS Naming Convention
Learn BEM: CSS Naming Convention
In a Rocket
SEO: Getting Personal
SEO: Getting Personal
Kirsty Hulse
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
ux singapore
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
Stanford GSB Corporate Governance Research Initiative
Contenu connexe
En vedette
20130725 perl beginners_9
20130725 perl beginners_9
Syun Fuji
Time band
Time band
Syun Fuji
そんなスクラムなら 止めちまえ
そんなスクラムなら 止めちまえ
Syun Fuji
20131128 perl beginners_11_profiler
20131128 perl beginners_11_profiler
Syun Fuji
Learn BEM: CSS Naming Convention
Learn BEM: CSS Naming Convention
In a Rocket
SEO: Getting Personal
SEO: Getting Personal
Kirsty Hulse
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
ux singapore
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
Stanford GSB Corporate Governance Research Initiative
En vedette
(8)
20130725 perl beginners_9
20130725 perl beginners_9
Time band
Time band
そんなスクラムなら 止めちまえ
そんなスクラムなら 止めちまえ
20131128 perl beginners_11_profiler
20131128 perl beginners_11_profiler
Learn BEM: CSS Naming Convention
Learn BEM: CSS Naming Convention
SEO: Getting Personal
SEO: Getting Personal
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
20130927 perlbeginners 10 time-piece
1.
よくやった時間バグ @i47_rozary Perl beginners #10
2.
注意 !! • Time::Piece
を中心に語ってます。 • Time::Piece 中心に偏ってます。 • 今までやってしまったバグ • 今まで周りの人がやったバグ • だので、具体的 ? かと思います。
3.
自己紹介 • 最近、あんまり Perl
書いてません。 • マネジメントばかりやってるんです orz=3
4.
その前に
5.
YAPC2013 行って来ました。
6.
蟲封祈願 !! お守りって、 1
年くらいで”お返し”しますよ ね? だので、来年お守りをお返ししたら、潜在 バグがワラワラ出てくるんじゃないのかと …。 ちょっと怖い想像してみた。
7.
で、本題
8.
アジェンダ • Time::Piece の紹介
( かるく ) • Time::Piece を使っていて起こすバグと対 策をつらつらと。
9.
Time::Piece 紹介 my $times
= time(); my ($sec,$min,$hour,$mday,$month,$year, $wday,$stime) = localtime($times); $year += 1900; print “Year is ”, $year, “n”; #Year is 2013
10.
Time::Piece 紹介 use Time::Piece; my
$t = localtime; print “Year is ”, $t->year, “n”; #Year is 2013
11.
かんた ん !! 4 行が
2 行に ! 値の順番とか気にしない !
12.
Time::Piece 紹介 Perl 5.10
から標準モジュールに入ってま すぉ。
13.
バグった 話 スタート
14.
バグった 1 my $t1
= Time::Piece->strptime("2013-09-27 17:00:00","%Y-%m%d %H:%M:%S"); say $t1->datetime; #2013-09-27T17:00:00 my $t2 = localtime->strptime("2013-09-27 17:00:00","%Y-%m%d %H:%M:%S"); say $t2->datetime; #2013-09-27T17:00:00
15.
バグった 1 今のやつ同じだと思うじゃないですか。 say $t1->epoch; #1380301200 say
$t2->epoch; #1380268800 タイムゾーンが、ずれてるんで epoch 時間が違ってます。 時間の比較なんかしたらもうね…。
16.
対策 基本的に localtime->strptime() を使うようにする。 弊社の人間は、恐らく 100%
ハマってる。
17.
バグった 2 my $t2
= localtime->strptime("2013-09-27 17:00:00","%Y-%m%d %H:%M:%S"); say $t2->datetime; #2013-09-27T17:00:00 * Version 1.15
18.
バグった 2 了解、ハッハー !! localtime
使ってるぜー !! say $t2->epoch; #1380301200 Time::Piece で strptime した時の epoch になっとるやない かー !!
19.
対策 バージョン 1.15 以 前は使うな
!! 1.16 の Changes に書いてある。 Implement %z for the internal implementation of strptime(). Unfortunately this doesn't get picked up everywhere, so there are no tests for it (yet - patches welcome).
20.
バグった 3 # 現在時刻
:2013/09/27 17:00:00 my $t = Time::Piece->new; $t += ONE_MONTH; #2013-10-28T04:12:42
21.
バグった 3 27 日が
28 日なっていたりと。 きっかり 1 ヶ月ではない。
22.
対策 年月を見る分には使える。 そらそうだよね、 1 ヶ月の日数ってバラバラだもん。 そこをどう捉えるかは、処理次第だよね
?
23.
その他 バグった • Time::Piece
をテストする時の epoch • 24 時間 ( 日またぎ ) を超えるプロセスでの 実行 • データリセット時間の設定
24.
まとめ 時間の処理を本番環境で 初めて動かすときは、 リアルタイムで張り付いているといいよ !! 特に日またぎとかね !!
Télécharger maintenant