なぜ月は「MM」なのか?yyyymmddの記号を仕組みから理解する

yyyymmddとは

仕様書やプログラムのコードで「yyyymmdd」という日付の表記を見かけて、意味がわからず戸惑った経験はありませんか。本記事では、yyyymmddが何を表すのか、各記号の意味から言語・ツールごとの書き方、間違えやすいポイントまでをまとめて解説します。

yyyymmddとは?日付フォーマットの基本

yyyymmddとは、日付を「年・月・日」の順で表すための書式(日付フォーマット)です。y が年、m が月、d が日を表し、それぞれ並んでいる文字数がそのまま桁数を示します。たとえば2026年6月1日は 20260601 と表記します。

このように区切り文字を入れず8桁の数字で並べる形式は、ファイル名やログの記録など「短く・並べ替えやすく」したい場面で広く使われています。

各記号の意味(y・m・d)

yyyymmddを1文字ずつ分解すると、次のような意味になります。文字数によって表示される桁数が変わる点がポイントです。

記号 意味 例(2026年6月1日)
yyyy 西暦4桁の年 2026
yy 西暦下2桁の年 26
mm 月2桁(ゼロ埋めあり) 06
m 月(ゼロ埋めなし) 6
dd 日2桁(ゼロ埋めあり) 01
d 日(ゼロ埋めなし) 1

つまり「yyyymmdd」は、4桁の年・2桁の月・2桁の日を、すべてゼロ埋めしてつなげた8桁の形式ということになります。

「yyyymmdd」の読み方と具体例

読み方は「ワイ・ワイ・ワイ・ワイ・エム・エム・ディー・ディー」と1文字ずつ読むのが一般的です。実際の日付をこの形式に当てはめると、次のようになります。

  • 2026年1月5日 → 20260105
  • 2026年6月1日 → 20260601
  • 2026年12月31日 → 20261231

月や日が1桁になる場合でも、必ず先頭に0を補って2桁にそろえるのがルールです。これにより、どの日付も必ず8桁になります。

日付フォーマットでよく使う記号一覧

日付や時刻を表すフォーマットでは、年月日以外にも時・分・秒を表す記号がよく使われます。代表的なものを整理しておきましょう。

記号 表すもの
yyyy 年(4桁) 2026
MM / mm 月(2桁)※言語により大小区別あり 06
dd 日(2桁) 01
HH 時(24時間・2桁) 14
hh 時(12時間・2桁) 02
mm 分(2桁)※月と紛らわしい 30
ss 秒(2桁) 45

日時をまとめて表す場合は、yyyymmddhhmmss のように年月日のうしろに時分秒を続けて、14桁で表記することもあります。

yyyymmddと混同しやすい日付フォーマット

日付の書き方は1つではありません。yyyymmddと似ていて間違えやすい形式を比較しておきましょう。

フォーマット 表記例 特徴・主な用途
yyyymmdd 20260601 区切りなし。ファイル名・ログ向き
yyyy-mm-dd 2026-06-01 ISO 8601(国際標準)
yyyy/mm/dd 2026/06/01 日本で一般的
dd/mm/yyyy 01/06/2026 欧州式
mm/dd/yyyy 06/01/2026 米国式

yyyy-mm-dd(ISO 8601)との違い

yyyy-mm-dd はハイフンで区切る形式で、国際標準規格であるISO 8601で定められた書き方です。人が見たときに「年・月・日」の区切りがわかりやすく、システム間でのデータ連携でも広く採用されています。yyyymmddはこのハイフンを取り除いた形、と考えるとわかりやすいでしょう。

スラッシュ区切り・欧米式との違い

注意したいのが、欧州式の dd/mm/yyyy と米国式の mm/dd/yyyy です。たとえば「06/01/2026」は、米国式では6月1日ですが、欧州式では1月6日を意味します。同じ並びでも国によって解釈が変わるため、海外とのやり取りでは特に注意が必要です。

区切りなし(yyyymmdd)を使うメリット

区切り文字のないyyyymmddには、次のような利点があります。

  • 文字列のまま並べ替えると、自動的に日付の古い順・新しい順になる
  • ファイル名やフォルダ名に使ってもスラッシュ等の記号でエラーにならない
  • 8桁で固定されるため、桁数のチェックがしやすい

ポイント

ファイル名を report_20260601.csv のようにyyyymmddで付けておくと、ファイル一覧を名前順に並べるだけで日付順に整理できます。

大文字・小文字で意味が変わる点に注意

プログラミングで日付フォーマットを扱うとき、もっとも間違えやすいのが大文字・小文字の区別です。JavaやICUなど多くの環境では、次のように大文字と小文字でまったく別の意味になります。

記号 意味
yyyy / yy
MM(大文字)
mm(小文字)
dd(小文字)
DD(大文字) その年の通算日数

よくある間違い

Javaなどで月を表したいときに yyyymmdd と小文字で書くと、mm が「分」と解釈され、意図しない値になってしまいます。月は大文字の MM を使い、yyyyMMdd と書くのが正解です。

プログラミング言語・ツール別の書き方

yyyymmdd形式の出力方法は、使うツールや言語によって異なります。代表的なものを紹介します。

Excel(ユーザー定義書式)

Excelでは、セルの書式設定にある「ユーザー定義」で表示形式を指定します。区切りなしで表示したい場合は、種類の欄に yyyymmdd と入力します。なおExcelの書式コードは大文字・小文字を区別しないため、YYYYMMDDと書いても同じ結果になります。

Java / Python / JavaScript / SQL

主要な言語での書き方は次のとおりです。月の指定方法が言語ごとに異なる点に注目してください。

言語・環境 指定例
Java new SimpleDateFormat("yyyyMMdd")
Python datetime.now().strftime("%Y%m%d")
SQL Server FORMAT(GETDATE(),'yyyyMMdd')
MySQL DATE_FORMAT(NOW(),'%Y%m%d')

JavaScriptには標準でyyyymmdd形式に変換する関数がないため、年・月・日をそれぞれ取り出して文字列として連結するか、日付ライブラリを利用するのが一般的です。

Excelで文字列とyyyymmddを相互変換する方法

Excelでは、8桁の数字を日付に直したり、日付をyyyymmdd形式の文字列にしたりする場面がよくあります。代表的な関数を覚えておくと便利です。

やりたいこと 数式の例(A1にデータがある場合)
日付 → yyyymmddの文字列にする =TEXT(A1,"yyyymmdd")
8桁の数字 → 日付に変換する =DATE(LEFT(A1,4),MID(A1,5,2),RIGHT(A1,2))
区切りなしを yyyy/mm/dd 表示にする =TEXT(A1,"0000!/00!/00")

入力時の注意

セルに 20260601 と打つと、Excelが数値や日付シリアル値として勝手に解釈してしまうことがあります。8桁の文字列としてそのまま残したいときは、あらかじめセルの表示形式を「文字列」にするか、先頭にアポストロフィ(’)を付けて入力します。

JavaScriptでyyyymmdd形式を作る

JavaScriptには標準でyyyymmddに変換する関数がないため、年・月・日を取り出して桁をそろえながら連結します。月は0始まり(1月が0)になる点に注意が必要です。

  • getFullYear() で年(4桁)を取得する
  • getMonth()+1 で月を取得し、1を足す
  • getDate() で日を取得する
  • 月と日は String(値).padStart(2,"0") で2桁にゼロ埋めする
  • 取得した3つを文字列として連結する

ポイント

ゼロ埋めを忘れると、6月1日が「202661」のように6桁になってしまいます。月・日は必ず2桁にそろえる処理を入れましょう。

yyyymmddが実務で使われる場面

区切りなし8桁という特徴から、yyyymmddは次のような場面で重宝されます。

場面 使われ方の例
ファイル・フォルダ名 backup_20260601.zip のように日付を付け、名前順で日付順に整理
ログ・履歴の記録 1行ごとに日付を8桁で記録し、後から並べ替え・抽出しやすくする
バッチ処理・連携データ システム間でやり取りするCSVなどで、桁固定の日付として扱う
バージョン管理 資料やリリースの版を v20260601 のように日付で管理

yyyymmddに関するよくある質問(FAQ)

yyyymmddは全部で何桁になりますか?

必ず8桁になります。年4桁・月2桁・日2桁を、すべてゼロ埋めしてつなげるためです。

yyyymmddとyyyy-mm-ddはどちらを使うべきですか?

人が読む資料や他システムとの連携ではISO 8601のyyyy-mm-ddが無難です。一方、ファイル名やログのように並べ替えや桁固定を重視する場面ではyyyymmddが便利です。

時刻も一緒に表したいときは?

年月日のうしろに時分秒を続けて yyyymmddhhmmss(14桁)と表記するのが一般的です。

まとめ

yyyymmddは、年4桁・月2桁・日2桁をつなげた8桁の日付フォーマットです。区切りがないため並べ替えやファイル名に向く一方、海外式の並びや、プログラミングでの大文字・小文字の違い(月はMM、分はmm)には注意が必要です。用途に合わせて、ISO 8601のyyyy-mm-ddなど他の形式と使い分けるとよいでしょう。