DateTimeX::Moment

61
DateTimeX::Momen t id:karupanerura Yokohama.pm #14

Transcript of DateTimeX::Moment

Page 1: DateTimeX::Moment

DateTimeX::Momentid:karupaneruraYokohama.pm #14

Page 2: DateTimeX::Moment

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..

Page 3: DateTimeX::Moment

DateTimeX::Moment

Page 4: DateTimeX::Moment

is 何

Page 5: DateTimeX::Moment

DateTime互換

Time::Moment

Page 6: DateTimeX::Moment

Time::Moment

Page 7: DateTimeX::Moment

is 何

Page 8: DateTimeX::Moment

超速い日時処理ができるモジュール

Page 9: DateTimeX::Moment

ただし

Page 10: DateTimeX::Moment

タイムゾーンサポートなし(固定オフセットのみ)(システムタイムゾーン依存)

Page 11: DateTimeX::Moment

ロケールサポートなし(システムロケール依存)

Page 12: DateTimeX::Moment

だいたい問題ない

Page 13: DateTimeX::Moment

問題あるときはどうするか

Page 14: DateTimeX::Moment

DateTimeX::Moment=

DateTime::Locale+

DateTime::TimeZone+

Time::Moment

Page 15: DateTimeX::Moment

めんどい

Page 16: DateTimeX::Moment

二度と実装したくない

Page 17: DateTimeX::Moment

つくったhttps://metacpan.org/pod/DateTimeX::Moment

Page 18: DateTimeX::Moment

サポートしていない機能

Page 19: DateTimeX::Moment

紀元前

Page 20: DateTimeX::Moment

week_year( その週は何年に属すか )

Page 21: DateTimeX::Moment

CLDR format(DateTime に委譲 )

Page 22: DateTimeX::Moment

うるう秒の取得

Page 23: DateTimeX::Moment

月末処理方法の選択(limit 固定 )

Page 24: DateTimeX::Moment

まーいらないでしょう(雑)

Page 25: DateTimeX::Moment

DEMO

Page 26: DateTimeX::Moment

まーそこそこの速度

Page 27: DateTimeX::Moment

DateTime からパチってきたテストコードをPASS している

Page 28: DateTimeX::Moment

DateTime ほど遅くない

Page 29: DateTimeX::Moment

使いたい場面があればどうぞ

Page 30: DateTimeX::Moment

おわり

Page 31: DateTimeX::Moment

え?まだ時間ありますか?

Page 32: DateTimeX::Moment

時間が余ったのでタイムゾーンの小咄をします

Page 33: DateTimeX::Moment

タイムゾーン

Page 34: DateTimeX::Moment

時差を管理する概念

Page 35: DateTimeX::Moment

UTC( 世界標準時 )からの時差をオフセットと呼ぶ

Page 36: DateTimeX::Moment

地域ごとに決まっている

Page 37: DateTimeX::Moment

日本だったら全域JST-9

(Asia/Tokyo)

Page 38: DateTimeX::Moment

アメリカだと東海岸と西海岸で最大 4 時間違う

Page 39: DateTimeX::Moment

サマータイムもタイムゾーンで管理

Page 40: DateTimeX::Moment

サマータイム

Page 41: DateTimeX::Moment

夏時間

Page 42: DateTimeX::Moment

夏に時差をずらす

Page 43: DateTimeX::Moment

夏は日が長いので時間をずらそうぜってどっかのおっさんが言ったんじゃないかな

Page 44: DateTimeX::Moment

日本にも昔あった (JDT)(1948 年 - 1951 年 )

Page 45: DateTimeX::Moment

さて

Page 46: DateTimeX::Moment

現時刻から 66 年 9 ヶ月前

Page 47: DateTimeX::Moment

オフセットは何時間だったか

Page 48: DateTimeX::Moment

正解 : 夏時間なので JDT(9+1 時間 )

Page 49: DateTimeX::Moment

正確に計算できるか

Page 50: DateTimeX::Moment

Time::Moment では無理

Page 51: DateTimeX::Moment

一部の国ではサマータイムは現役

Page 52: DateTimeX::Moment

時代によってはサマータイムを採用していたりいなかったり

Page 53: DateTimeX::Moment

そもそも標準時のオフセットが変わったり

Page 54: DateTimeX::Moment

そもそも標準時の概念が出来る前だったり

Page 55: DateTimeX::Moment

そもそも人類が誕生していなかったり

Page 56: DateTimeX::Moment

😇

Page 57: DateTimeX::Moment

結論

Page 58: DateTimeX::Moment

タイムゾーンはむずかしい

Page 59: DateTimeX::Moment

扱わなくて良いなら扱わないほうが身のため

Page 60: DateTimeX::Moment

😇

Page 61: DateTimeX::Moment

おわり