about datatime

基礎前提知識

  • 例として日本の10:00にDateTimeを表示すると
    • 標準時間:UTC: 2018/06/06T01:00:00+00:00
    • 日本時間:JST: 2018/06/06T10:00:00+09:00

Tips

stringからDateTime型などに変換する際に大抵UTCとして変換される。

なので、stringの時点でTimezonestirngで追記しておくと出来上がったデータもJSTとして生成される

datetime_str = "2018-06-06 10:00:00"
{:ok, datetime_ust} = Timex.parse(datetime_str            , "{ISO:Extended:Z}")
{:ok, datetime_jst} = Timex.parse(datetime_str <> "+09:00", "{ISO:Extended:Z}")

datetime_ust
# ~N[2018-06-06 10:00:00]
# 型がjst/ustで違うけど、重要なのは、timezoneが含まれているか 

datetime_jst
# #<DateTime(2018-06-06T10:00:00+09:00 Etc/GMT-9)>

Reference