Soumettre la recherche
Mettre en ligne
perl5の日付時刻処理とか
•
2 j'aime
•
2,729 vues
karupanerura
Suivre
Yokohama.pm #10
Lire moins
Lire la suite
Technologie
Signaler
Partager
Signaler
Partager
1 sur 28
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
fluent-plugin-resque_stat
fluent-plugin-resque_stat
Makoto Haruyama
NetBSD manを翻訳しよう!
NetBSD manを翻訳しよう!
Kiwamu Okabe
TIme::Moment+Time::Strptime=
TIme::Moment+Time::Strptime=
karupanerura
Perl5 VS JSON
Perl5 VS JSON
karupanerura
コンテキストと仲良く
コンテキストと仲良く
karupanerura
The plan of Aniki 2.0
The plan of Aniki 2.0
karupanerura
Aniki::Internal
Aniki::Internal
karupanerura
The Crystal language *recently* update
The Crystal language *recently* update
karupanerura
Recommandé
fluent-plugin-resque_stat
fluent-plugin-resque_stat
Makoto Haruyama
NetBSD manを翻訳しよう!
NetBSD manを翻訳しよう!
Kiwamu Okabe
TIme::Moment+Time::Strptime=
TIme::Moment+Time::Strptime=
karupanerura
Perl5 VS JSON
Perl5 VS JSON
karupanerura
コンテキストと仲良く
コンテキストと仲良く
karupanerura
The plan of Aniki 2.0
The plan of Aniki 2.0
karupanerura
Aniki::Internal
Aniki::Internal
karupanerura
The Crystal language *recently* update
The Crystal language *recently* update
karupanerura
KOWAZA for mackerel
KOWAZA for mackerel
karupanerura
DateTimeX::Moment
DateTimeX::Moment
karupanerura
Aniki has come
Aniki has come
karupanerura
Optimize perl5 code for perfomance freaks
Optimize perl5 code for perfomance freaks
karupanerura
Technology for reduce of mistakes - うっかりをなくす技術
Technology for reduce of mistakes - うっかりをなくす技術
karupanerura
router-simple.cr
router-simple.cr
karupanerura
Why we use mruby with Perl5?
Why we use mruby with Perl5?
karupanerura
はかたの塩
はかたの塩
karupanerura
Gotanda.pmの紹介
Gotanda.pmの紹介
karupanerura
すいすいSwift
すいすいSwift
karupanerura
Perlにおけるclass実装パターン
Perlにおけるclass実装パターン
karupanerura
モジュール開発におけるぼくの試行錯誤
モジュール開発におけるぼくの試行錯誤
karupanerura
Aniki - The ORM as our great brother.
Aniki - The ORM as our great brother.
karupanerura
Perl5 meta programming
Perl5 meta programming
karupanerura
mysqlcasual6-next-key-lock
mysqlcasual6-next-key-lock
karupanerura
dwangocpp1-lt
dwangocpp1-lt
karupanerura
engineer-life
engineer-life
karupanerura
若手Itエンジニア飲み会-LT
若手Itエンジニア飲み会-LT
karupanerura
Hachioji.pm #40
Hachioji.pm #40
karupanerura
Hachioji.pm #39
Hachioji.pm #39
karupanerura
Contenu connexe
Plus de karupanerura
KOWAZA for mackerel
KOWAZA for mackerel
karupanerura
DateTimeX::Moment
DateTimeX::Moment
karupanerura
Aniki has come
Aniki has come
karupanerura
Optimize perl5 code for perfomance freaks
Optimize perl5 code for perfomance freaks
karupanerura
Technology for reduce of mistakes - うっかりをなくす技術
Technology for reduce of mistakes - うっかりをなくす技術
karupanerura
router-simple.cr
router-simple.cr
karupanerura
Why we use mruby with Perl5?
Why we use mruby with Perl5?
karupanerura
はかたの塩
はかたの塩
karupanerura
Gotanda.pmの紹介
Gotanda.pmの紹介
karupanerura
すいすいSwift
すいすいSwift
karupanerura
Perlにおけるclass実装パターン
Perlにおけるclass実装パターン
karupanerura
モジュール開発におけるぼくの試行錯誤
モジュール開発におけるぼくの試行錯誤
karupanerura
Aniki - The ORM as our great brother.
Aniki - The ORM as our great brother.
karupanerura
Perl5 meta programming
Perl5 meta programming
karupanerura
mysqlcasual6-next-key-lock
mysqlcasual6-next-key-lock
karupanerura
dwangocpp1-lt
dwangocpp1-lt
karupanerura
engineer-life
engineer-life
karupanerura
若手Itエンジニア飲み会-LT
若手Itエンジニア飲み会-LT
karupanerura
Hachioji.pm #40
Hachioji.pm #40
karupanerura
Hachioji.pm #39
Hachioji.pm #39
karupanerura
Plus de karupanerura
(20)
KOWAZA for mackerel
KOWAZA for mackerel
DateTimeX::Moment
DateTimeX::Moment
Aniki has come
Aniki has come
Optimize perl5 code for perfomance freaks
Optimize perl5 code for perfomance freaks
Technology for reduce of mistakes - うっかりをなくす技術
Technology for reduce of mistakes - うっかりをなくす技術
router-simple.cr
router-simple.cr
Why we use mruby with Perl5?
Why we use mruby with Perl5?
はかたの塩
はかたの塩
Gotanda.pmの紹介
Gotanda.pmの紹介
すいすいSwift
すいすいSwift
Perlにおけるclass実装パターン
Perlにおけるclass実装パターン
モジュール開発におけるぼくの試行錯誤
モジュール開発におけるぼくの試行錯誤
Aniki - The ORM as our great brother.
Aniki - The ORM as our great brother.
Perl5 meta programming
Perl5 meta programming
mysqlcasual6-next-key-lock
mysqlcasual6-next-key-lock
dwangocpp1-lt
dwangocpp1-lt
engineer-life
engineer-life
若手Itエンジニア飲み会-LT
若手Itエンジニア飲み会-LT
Hachioji.pm #40
Hachioji.pm #40
Hachioji.pm #39
Hachioji.pm #39
perl5の日付時刻処理とか
1.
perl5の日付時刻処理とか id:karupanerura 14年2月21日金曜日
2.
だれなの??????? @karupanerura ソシャゲエンジニア MF CPAN Author Perl/JS/Java/Emacs/etc... ビールのみたい 14年2月21日金曜日
3.
日付時刻処理とは epoch <-> YMDHMS形式相互変換 timezone処理 加減演算 差分計算 比較演算 14年2月21日金曜日
4.
処理する方法 epochでがんばる! localtime/gmtimeでがんばる! 日付時刻処理ライブラリをつかう 14年2月21日金曜日
5.
処理する方法 epochでがんばる! localtime/gmtimeでがんばる! 日付時刻処理ライブラリをつかう 14年2月21日金曜日
6.
どのライブラリを使うか DateTime Time::Piece Date::Simple Time::Moment etc.... 14年2月21日金曜日
7.
DateTime YMDHMSをベースに計算 加減演算が正確かつ柔軟に出来る が遅い 仕様が分かりにくい部分もあるが慣れ次第 枯れていて安心して使える Perl5の標準的な日付処理ライブラリ 14年2月21日金曜日
8.
基本的なつかいかた perldoc DateTime 14年2月21日金曜日
9.
くわしいつかいかた perldoc DateTime 14年2月21日金曜日
10.
DateTimeの罠(1) 引用元: http://blog.64p.org/entry/20070904/1188877834 14年2月21日金曜日
11.
DateTimeの加減算 DateTime::Durationに移譲されている 月末をどのように処理するかを指定可能 wrap mode (default) 月末を跨ぐ limit
mode 月末を超えたら月末にあわせる preserve mode limit mode && 月末を維持する 14年2月21日金曜日
12.
DateTimeの罠(2) $datetime->add(...) $datetime自身が書き換わる cacheしにくい 常にcache値のcloneを返すなどで対処 14年2月21日金曜日
13.
Time::Piece 秒をベースに計算 月/年の加減演算などは正確性に欠ける 秒ベースで計算するので高速に動作する 仕様が分かりにくい部分もあるが慣れ次第 1.20未満に致命的なバグがある Perl5の新標準的な日付処理ライブラリ 14年2月21日金曜日
14.
基本的なつかいかた perldoc Time::Piece perldoc Time::Seconds 14年2月21日金曜日
15.
くわしいつかいかた perldoc Time::Piece perldoc Time::Seconds 14年2月21日金曜日
16.
Time::Pieceの罠(1) localtime + ONE_DAY localtime(+
ONE_DAY)と解釈される localtime() + ONE_DAY Time::Piece->strptime(...) GMTで解釈される localtime->strptime(...) 14年2月21日金曜日
17.
Time::Pieceの罠(2) localtime() + ONE_MONTH 1ヶ月くらいの秒数が加算される だいたい1ヶ月後くらいの日付がわかる localtime()
+ ONE_YEAR 1年くらいの秒数が加算される だいたい1年後くらいの日付がわかる 14年2月21日金曜日
18.
Date::Simple 日をベースに計算 日付演算に特化したライブラリ epochベースと同様シンプルなので高速 timezoneが統一されている状況で便利 日付の比較だけでもDateTimeより約150%高速 日付演算だけで十分な状況では便利 14年2月21日金曜日
19.
Date::Simpleの罠 特にハマった事ない なにかあったら教えて下さい! 14年2月21日金曜日
20.
Time::Moment 秒をベースに計算 秒ベースで計算するので高速に動作する しかし加減演算が正確に出来る preview releaseな新興勢力(現在: v0.14) 同氏(CHANSEN)作の
c-dt がベース Cで実装された日付時刻処理ライブラリ 14年2月21日金曜日
21.
※まだprojectで使ったことないです 14年2月21日金曜日
22.
ここがイケてる(1) objectがimmutable $tm->plus_hour(3) とかカジュアルに cacheしやすい (plus|minus)_(hour|year)が正確 DateTime::Durationのlimit mode相当 月末の処理方法は選べない 14年2月21日金曜日
23.
ここがイケてる(2) Serializeのサポート serialize方法を利用者が考えなくて良い timezoneはoffsetで指定 タイムゾーン名を管理しない DateTime::TimeZoneとの併用で なんかめっちゃ高速 Time::Pieceの1.5倍~20倍くらい高速 14年2月21日金曜日
24.
だいぶイケてるきがする!! 14年2月21日金曜日
25.
もっと便利にしたい strptime相当の機能が無い from_stringはフォーマット固定 用途によっては十分? DateTime::TimeZone 依存したくない? Time::Zone的なモジュールがあるといい? 14年2月21日金曜日
26.
Time::Strptime 拙作(githubのみ) PurePerlでちょびちょび作ってる epochを返すstrptime(3)っぽい機能を提供 localeどうしよう? timezone指定どうしよう? そもそも必要? 14年2月21日金曜日
27.
Time::Strptime::libc 拙作(githubのみ) libcのstrptime(3)/mktime(3) で同様の機能 windowsで使えない? なんでCPANにこういう感じのないの? 深遠な理由があるの? 14年2月21日金曜日
28.
まとめ 罠にきをつけよう ライブラリの仕様はちゃんと理解して使う Time::Moment便利そう がんがん使おう ビールのみたい 14年2月21日金曜日
Télécharger maintenant