やっぱり難しい日付のカスタムフォーマット


はじめに

最近、たてつづけにAutomation360で日付の表示がうまくいかないという相談を受けました。例えば、2022/01/29という表示をしたいのにうまくいかないという現象です。
これは、Automation360に限った話ではありませんし、あちこちに書かれていますが、それでも間違ってしまう人が多いのです。
ネタの重複になるかもしれませんが、情報が目にふれる機会を増やす意味でここでも書いてみます。

日付のカスタムフォーマット(大文字・小文字に注意)

先に書いた「2022/01/29という表示」をしたい場合は、yyyy/MM/ddです。
yyyyとddは小文字。
MMは大文字。

yyyy/mm/ddやYYYY/MM/DDと書くとハマります。

大文字小文字ってどんな意味があるの?

これもあちこちに情報ありますが、例えば以下。
https://docs.oracle.com/javase/jp/8/docs/api/java/text/SimpleDateFormat.html

Mが月で、mは分というのは、間違っても気づきやすくて救われます。

でも、
yは年で、Yは暦週の基準年
dは年における日で、Dは月における日
って意味わからないですよね。

1月にYYYY/MM/DDって書いたら悲惨です。
すぐに間違いに気付きません。

1月は上手く行ってたけど2月に日付が変になる。
あわててDDを直して、一安心。
そのまま1年近くたった年末にサブマリン不良YYYY発動!になるかもしれません。

DDに比べると、YYYYはあまり知られていない感じがします。

まとめ

日付フォーマット文字列の詳細は、あちこちに書かれているのでここでは割愛します。
が、ここでお伝えしたいのは、ただ一言。
大文字・小文字の違いに注意しましょう!!





詳しく知りたい人むけ参考サイト
(1) yyyyとYYYYの話


(2) mmとMMの話


(3) ddとDDの話も含んだ、とっても詳しいページ