時間を表現する時はタイムゾーンも含めよう

時間の形式

最初に書こうと思っていたネタにようやくたどり着いた。

ファイル名を変更する時に微妙に困ったのが時間の扱い。

Hexo では、 date の形式が MySQL と同じような形式になっている。

この表示の仕方は割と一般的だとは思うのだけど、この形式について何も感じたことはないのだろうか?

表示形式について

時間の表示方法はいろいろな表し方があるようでいつも戸惑う。

私の場合は yyyy-mm-dd HH:MM:SS のように、日付部分は小文字、時間部分は大文字で書く。

しかし、 YYYY-mm-dd のように、4桁の西暦を大文字で書く人もいる。(2桁の年を yy と表現する)

あるいは、 strftime のように、 %Y-%m-%d %H:%M:%S とか、場合によっては %F %T とか。

時差について

いずれにしても、このような表現の場合、時差というかタイムゾーンについての情報が完全に欠落する。

Hexo はローカル環境でビルドするので、ローカル環境のタイムゾーンに依存する。

なので、この date をローカルのタイムゾーンを元にして UTC になおしてファイル名にすると、日本にいる時に実行して変更したファイルは、アメリカに行って実行すると全部書き換わってしまう。と思う。試してないけど。(ローカル環境のタイムゾーンを変えない、という選択肢もあるけど)

今時、 momentjs もあるし、文字列にする場合は、少なくとも ISO8601 に沿ってくれればよいのに。と思いながら、日本時間ということにしてファイル名を変更するスクリプトを書いた。

ようやくこのネタを書けたので、ちょっとアメリカ行ってきます。

comments powered by Disqus
Built with Hugo
Theme Stack designed by Jimmy