Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

DateTimeX::Moment

600 views

Published on

Yokohama.pm #14 LT

Published in: Software
  • Be the first to comment

  • Be the first to like this

DateTimeX::Moment

  1. 1. DateTimeX::Moment id:karupanerura Yokohama.pm #14
  2. 2. 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..
  3. 3. DateTimeX::Moment
  4. 4. is 何
  5. 5. DateTime 互換 Time::Moment
  6. 6. Time::Moment
  7. 7. is 何
  8. 8. 超速い日時処理ができる モジュール
  9. 9. ただし
  10. 10. タイムゾーンサポートなし (固定オフセットのみ) (システムタイムゾーン依存 )
  11. 11. ロケールサポートなし (システムロケール依存)
  12. 12. だいたい 問題ない
  13. 13. 問題あるときはどうするか
  14. 14. DateTimeX::Moment = DateTime::Locale + DateTime::TimeZone + Time::Moment
  15. 15. めんどい
  16. 16. 二度と実装したくない
  17. 17. つくった https://metacpan.org/pod/Da teTimeX::Moment
  18. 18. サポートしていない機能
  19. 19. 紀元前
  20. 20. week_year (その週は何年に属すか)
  21. 21. CLDR format (DateTimeに委譲)
  22. 22. うるう秒の取得
  23. 23. 月末処理方法の選択 (limit固定)
  24. 24. まーいらないでしょう(雑)
  25. 25. DEMO
  26. 26. まーそこそこの速度
  27. 27. DateTimeから パチってきた テストコードを PASSしている
  28. 28. DateTimeほど遅くない
  29. 29. 使いたい場面があればどうぞ
  30. 30. おわり
  31. 31. え? まだ時間ありますか?
  32. 32. 時間が余ったので タイムゾーンの小咄をします
  33. 33. タイムゾーン
  34. 34. 時差を管理する概念
  35. 35. UTC(世界標準時) からの 時差を オフセットと呼ぶ
  36. 36. 地域ごとに決まっている
  37. 37. 日本 だったら 全域 JST-9 (Asia/Tokyo)
  38. 38. アメリカだと 東海岸と西海岸で 最大4時間 違う
  39. 39. サマータイムも タイムゾーンで 管理
  40. 40. サマータイム
  41. 41. 夏時間
  42. 42. 夏に時差をずらす
  43. 43. 夏は日が長いので時間をずら そうぜってどっかのおっさん が言ったんじゃないかな
  44. 44. 日本にも昔あった(JDT) (1948年 - 1951年)
  45. 45. さて
  46. 46. 現時刻から66年9ヶ月前
  47. 47. オフセットは何時間だったか
  48. 48. 正解:夏時間なのでJDT (9+1時間)
  49. 49. 正確に計算できるか
  50. 50. Time::Momentでは無理
  51. 51. 一部の国では サマータイムは現役
  52. 52. 時代によっては サマータイムを 採用していたりいなかったり
  53. 53. そもそも標準時の オフセットが変わったり
  54. 54. そもそも標準時の概念が 出来る前だったり
  55. 55. そもそも人類が 誕生していなかったり
  56. 56. 😇
  57. 57. 結論
  58. 58. タイムゾーンはむずかしい
  59. 59. 扱わなくて良いなら 扱わないほうが 身のため
  60. 60. 😇
  61. 61. おわり

×