YYYYMMDD と YYYYMD は違うよ?

SunShine!
SunShine!

ファイルとかフォルダーとかその他いろいろに日付を付けるでしょ?
タイムスタンプってやつ。
細かい話だけどさ。文字数には意味がある場合があるから。

サイバー

年月日の表し方

ユーザーはシステムの仕様書をつくるわけじゃないだろうから、ある程度のことはいいんだけどさ。
伝え方によっては期待どおりのものが出てこないかもよ。
ちょっとでも違うとちゃんと動かないってことは覚えといたほうがいい。

特にExcelで考えれば分かるんじゃないかと。
てなわけで、引き合いに出してみた。

文字の数に意味がある

Yは年。
Mは月。
Dは日。

それぞれを表してる。で、今回問題視してるのは月と日。
表記のこと。
これって、仕様として開発者に伝わるから。
ちゃんとチェックしたいし、エンジニアとしては確認しておきたいところ。

カレンダー

年に関しては、2文字でも4文字でもいいと思うんだよね。
どうせそのシステムがあと50年以上持つとも思えないし。
ただ、やっぱ見やすさとか考えたら、4文字にしとくべきだと思う。

チェス

あと、時間も。
hhmmssで。
年月日だけじゃユニークにならないことも多いし。
なんなら秒の小数点以下まで指定するよ。

YYYYMMDD

年が4文字。
月が2文字。固定
日が2文字。固定

月日がそれぞれ2文字固定ってところがポイント。

たとえば、以下のようになる。

カレンダー日付出力地
5月5日0505
7月15日0715
10月2日1002
12月20日1220

全部4文字で出力されるねって話。

YYYYMD

年が4文字。
月が可変
日が可変

月日の文字数がそれぞれ変わるってこと。

たとえば、以下のようになる。

カレンダー日付出力地
5月5日55
7月15日715
10月2日102
12月20日1220

不要なゼロが出力されないってメリットはある。
データの節約になるってこと。
なんだけど、それはそれでデメリットも多い。

Excelでやってみればいい

Excelにて。
セルの書式設定で表示形式をいじくってみるといいよ。

「MM」と「M」の違いがよく分かる。

Excel

ちなみに、時間も気にしてね。
hhmmssで、大文字と小文字で差があるわけだな。
システムってのはそんなもんだ。

どんなときに困るか

文字列を取得して、その中から年月日をそれぞれ切り出すとか。

年は4文字だからいいとして、月と日に関しては大変な苦労をすることになる。
どう考えても2文字表記にすべき

基盤

すごく昔は、メモリーに限りがあったこともあって、不要な情報は残さず、アルゴリズムでなんとかするって考え方もあったらしいが。
イマドキそんなこと。。
2文字の差なんて、レスポンスに影響しないって。
データ量だってチリが積もってくわけだが。それでもねぇ。。

利便性を考えたら、YYYYMMDDが正義。

ご意見やご感想などお聞かせください! コメント機能です。

タイトルとURLをコピーしました