DateTimeX::Moment
-
Upload
karupanerura-xmp -
Category
Software
-
view
473 -
download
0
Transcript of DateTimeX::Moment
DateTimeX::Momentid:karupaneruraYokohama.pm #14
About me
• Kenta SATO (id:karupanerura)• Perl/Go/Swift/Kotlin/Java/Crystal/C99/etc..• Gotanda.pm Author• Senior Engineer at Mobile Factory, Inc.
• WebApp/iOS/Android/Operation/etc..
DateTimeX::Moment
is 何
DateTime互換
Time::Moment
Time::Moment
is 何
超速い日時処理ができるモジュール
ただし
タイムゾーンサポートなし(固定オフセットのみ)(システムタイムゾーン依存)
ロケールサポートなし(システムロケール依存)
だいたい問題ない
問題あるときはどうするか
DateTimeX::Moment=
DateTime::Locale+
DateTime::TimeZone+
Time::Moment
めんどい
二度と実装したくない
つくったhttps://metacpan.org/pod/DateTimeX::Moment
サポートしていない機能
紀元前
week_year( その週は何年に属すか )
CLDR format(DateTime に委譲 )
うるう秒の取得
月末処理方法の選択(limit 固定 )
まーいらないでしょう(雑)
DEMO
まーそこそこの速度
DateTime からパチってきたテストコードをPASS している
DateTime ほど遅くない
使いたい場面があればどうぞ
おわり
え?まだ時間ありますか?
時間が余ったのでタイムゾーンの小咄をします
タイムゾーン
時差を管理する概念
UTC( 世界標準時 )からの時差をオフセットと呼ぶ
地域ごとに決まっている
日本だったら全域JST-9
(Asia/Tokyo)
アメリカだと東海岸と西海岸で最大 4 時間違う
サマータイムもタイムゾーンで管理
サマータイム
夏時間
夏に時差をずらす
夏は日が長いので時間をずらそうぜってどっかのおっさんが言ったんじゃないかな
日本にも昔あった (JDT)(1948 年 - 1951 年 )
さて
現時刻から 66 年 9 ヶ月前
オフセットは何時間だったか
正解 : 夏時間なので JDT(9+1 時間 )
正確に計算できるか
Time::Moment では無理
一部の国ではサマータイムは現役
時代によってはサマータイムを採用していたりいなかったり
そもそも標準時のオフセットが変わったり
そもそも標準時の概念が出来る前だったり
そもそも人類が誕生していなかったり
😇
結論
タイムゾーンはむずかしい
扱わなくて良いなら扱わないほうが身のため
😇
おわり