# 日付

27.7.08。2008年の7月27日を表す。（チェコ カルロヴィ・ヴァリ）
**日付**（ひづけ、dating）は、文書などにその作成・提出などの年・月・日を記すこと。また、その年月日（ねんがっぴ、date）。暦（calendar）では、記された年月日を表す数字をいう。

古来から日付の表記方法が存在し、それぞれの国と時代で定められた方法により日付が表記された書物が残されている。その表記順序（エンディアン）は様々で混乱を招くことがあったため、現在では、日付の表記方法として国際標準のISO 8601が制定・運用されている。

## 暦日とは

暦日 (calendar day) とは、00時00分から始まり24時00分（通常、翌日の00時00分）で終わる連続した24時間のことであり（ISO 8601 より）、この間のどの時刻も同じ暦日で表す（例として、00時05分の暦日と23時55分の暦日は同じ）。

この定義にある「時刻」は地方標準時の時刻である。したがってタイムゾーンが異なれば、同じ日付でも時刻が異なる。

1暦日は、通常は正確に24時間00分00秒であるが、次の場合には異なる。

* うるう秒を挿入または削除する場合。挿入された場合、24時間1秒になる。
* 時間帯が変更される場合（夏時間の開始・終了も含む）。1時間変更された場合、23時間または25時間になる。

## 年月日の順序の混乱

この画像の「9/11」は、アメリカ同時多発テロが発生した9月11日を表しているが、人によっては11月9日だと思うかもしれない。

  日月年 – (DD-MM-YYYY) – (リトルエンディアン)
  月日年 – (MM-DD-YYYY) – (ミドルエンディアン)
  年月日 – (YYYY-MM-DD) – (ビッグエンディアン)
  日月年 + 月日年
  日月年 + 年月日
  月日年 + 年月日
  日月年 + 月日年 + 年月日
詳細は英語版を参照

年月日の表記順序（エンディアン〈英: endianness〉）は国や文化によって全く異なる。「2011年4月12日」を例に取ると、次のようになっている（世界地図参照）。ここでは表記がISO準拠ではないことを強調するために、区切り文字は便宜上、「/」（スラッシュ）を用いている。

* 年月日の順（2011/04/12） - ビッグエンディアン（Big-Endian、中国・日本・韓国など）
* 日月年の順（12/04/2011） - リトルエンディアン（Little-Endian、イギリス、フランス、ドイツ、イタリア、ロシアなど）
* 月日年の順（04/12/2011） - ミドルエンディアン（Middle-Endian、アメリカ合衆国）

「12/04/2011」と書いた場合、これが「日月年」（12日04月2011年なのか「月日年」（12月04日2011年）なのかは不明であり、誤解の原因となる。さらに年を最後の2桁だけで表す慣習があるので、
「12/04/11」と書いた場合、「年月日」（2012年04月11日）とも解釈されるので、極めて混乱する。

この混乱を統一するためにISO 8601は「年月日」の順に統一した。この場合、2011-04-12 のように、区切り文字には「-」(ハイフン)のみを用いる。ただし、日本の元号を用いる場合は、令03.11.12 または R03.11.12（いずれも令和03年11月12日を表す）のように、区切り文字にはハイフンではなく、「.」(ピリオド)を用いる（ISO 8601#国家規格による拡張を参照）。

## 標準

日付の世界標準規格は、ISO 8601の"Data elements and interchange formats -- Information interchange -- Representation of dates and times"（JISCによる仮訳：「データ要素及び交換書式－情報交換－日付及び時間の表現」である。

ISO 8601は、その前身であるen:ISO 2014(1976)以来、"YYYY-MM-DD"方式（年・月・日の順番で、紀年法による西暦（CE）で年を数字4桁、月と日とを各々数字2桁で表す方式）と定めている。

年月日を8桁の数字で表す、YYYYMMDD、YYYY-MM-DD、YYYY年MM月DD日、yy年MM月DD日、YYYY/MM/DD というようなフォーマット（様式、形式）には、日付の降順あるいは昇順で簡単にソートできるという利点がある。

## 年月日の表現

年月日の表現は1976年以来、国際標準規格en:ISO 2014およびISO 8601によって"YYYYMMDD"方式（基本表記）あるいはハイフン（ハイフンマイナス）を入れた"YYYY-MM-DD"方式（拡張表記）の2通りと定められている（つまり、いずれにしても、「年4桁、月2桁、日2桁」の方式）。

しかしながら、年・月・日の後に時・分・秒を各々2桁で表記し得ることまで定められていること、日を最初に持って来て最後に西暦年数末尾2桁で年を表記する欧州ローカル方式（例えば、"**0911**89"はベルリンの壁崩壊の1989年**11月09日**を意味する）と月を最初に持って来て最後に西暦年数末尾2桁で年を表記する米国ローカル方式（例えば、"**0911**01"はアメリカ同時多発テロの2001年**09月11日**を意味する）とが存在していることなどの事情により、混乱を避ける必要性や視認の容易さから、年をまず数字4桁で表した上でハイフン（-）を入れて区切る拡張表記のほうが一般的に普及している。

ISO 8601方式はインターネットやデータ管理の世界でいち早く先行し一般的となっている。この背景には、特にウェブページの制作者やエンジニアたちには、ポータビリティやユーザー・インターフェース、ファイル・フォーマット、コミュニケーション・プロトコル等に関する余計な問題を回避する必要性があるため、ISO 8601方式（"YYYYMMDD"T"hhmmss""±hhmm"、あるいは、"YYYY-MM-DD"T"hh:mm:ss""±hh:mm"など）を最大限尊重しておくほうが便利かつ無難であるという事情がある。また、ISO 8601方式では年月日の各々の数字は同じ固定長の数字で表わさねなければならないという長所がある。年は数字4桁、月・日・時・分・秒は各々数字2桁と決められており、足りない桁数は"0"をもって補う決まりとなっている。更に、同じユーザー・インターフェースや同じファイル・フォーマットや同じコミュニケーション・プロトコルでは、同じ方式が採用されなければならない。このため、どのような機種のどのようなフォントの場合であっても、年・月・日（・時・分・秒・タイムゾーン指示子）の表示は必ず揃う仕組みになっている。

ISO 8601 は、各国の伝統を取り入れた独自の標準化方式も容認している。このため、部分的に ISO 8601 方式を取り入れることも可能となっている。

* 日本では、日本産業規格のJIS X 0301「情報交換のためのデータ要素及び交換形式 ― 日付及び時刻の表記」という規格がある。内容は、元号による年表現も可能となっている点を除いてISO 8601と全く同じである。
	+ 「明」「大」「昭」「平」「令」または「 M 」「 T 」「 S 」「 H 」「 R 」を必要に応じて年2桁の前に付ける。区切りは「ハイフン（ - ）」ではなく「終止符（ . ）」を用いる。ISO 8601#日本 (JIS X 0301)を参照のこと。
	+ 年月日表示方法について日本政府（経済産業省）が定めた唯一の国内規格である。
	+ なお、日本古来の和風月名（睦月・如月など）がカレンダー等で今なお脈々と受け継がれてはいるものの、数で表すことが遅くとも江戸時代には支配的となっており、しかも旧暦に対応していた上記月名と新暦の月との間の齟齬も相当に大きいため、この規格において月名表記は全く認められていない。
	+ 和暦であっても「令和」・「R」等を付けずに表記することもある。またソフトによっては、年を2桁で入力すると「yy/MM/DD」に自動で変換されることもある。かつてのMicrosoft Excelでは、年を2桁で入力した場合は元号優先で処理しており、例えば「09/03/22」と入力した場合、平成9年を意味し、「1997年3月22日」と表示された。
* 台湾では、中華民国国家標準 CNS 7648「資料元及交換格式・資訊交換・日期及時間的表示法」がある。JIS と同様に、民国紀元による年表現も可能となっている。
	+ CNS 7648 ではR.O.C.（民国紀元）の使用が認められている。
* グレゴリオ暦発祥の地である欧米では、各々の国は独自の標準化方式により月を数字ではなくその言語での伝統的な月名やその略号（例:英語で1月ならJanuaryやJan）で表している場合が今なお大変多い。

## 日付表現の種類

年月日による日付表現を「暦日付」という。
ISO 8601 では、「暦日付」だけではなく、「年間通算日」、「暦週日付」についても、基本様式 basic format および 拡張様式 extended format の2様式の標準規格を定めている。その2様式について更に、各々、「完全表記 complete representation 」および「上位省略表記 representation with reduced accuracy」の2様式の標準規格を定めている。

以下、参考として基本表記によるものを例示する。

1. 暦日付 (calendar date)
	* “1999年12月31日”や"December 31, 2000"のような表現。
	* ISO 8601のYYYY-MM-DD方式と本質的には同じ表現。
	* 例 19850412
2. 年間通算日 (ordinal date)
	* その年の中で何日目かで日付を表す。八十八夜や二百十日も似た原理（ただしこれらは旧暦）の日付表現である。
	* 多くのメインフレーム用ソフトウェアで用いられている。また、日数の計算が容易になるため天文分野やアメリカ軍の兵站部門で好んで用いられる。
	* 例 1985102
3. 暦週日付 (week date)
	* その年の中で何番目の週の何曜日かで日付を表す（例:夏休みは29週目の火曜日から）。また暦週は主に2つの方式がある。
		+ ISO 8601方式 ―― その年最初の木曜日が含まれる週を第1週とする。欧州ではこの方式が主流。
		+ 慣用方式（または、アメリカ方式、USA方式）　―― 1月1日を含む週を第1週とする。アメリカなどが慣用的に使用しており、Microsoft ExcelやApple iWorkのNumbersのweeknum関数もこの方式を採用している。
		+ このため、1月1日が木曜日よりも後になる2010年などでは、ISO 8601方式と慣用方式とで暦週にずれが生じてしまう。また、同じ週であっても、「2009年12月31日までは、2009年の第53週。同じ週の2010年1月1日からは、2010年の第1週」と、週を示す番号が重複している場合（重複方式）などもあり、注意が必要である。実際に、2010年度の手帳では出版社ごとに暦週の対応が異なっているので注意が必要である。一例を挙げると「超」整理手帳は重複方式。能率協会・高橋書店の手帳ではISO 8601方式を採用している。
4. 通日 (day number)
	* ある元期からの経過日数で表す。
	* ユリウス通日、修正ユリウス日、リリウス日などがある。
	* 日付をコンピュータで扱うときの内部表現として、任意の切りのいい日付（たとえば Excelは1900年1月1日）を元日とした通日がよく使われる。
5. ○月第×△曜日
	* 「1月第2月曜日」のように、その月の中でその曜日が何回目かを表す。移動祝日や、毎月決まった回数決まった曜日に行う日程を表すのに使われる。

* 日付の一覧 - 旧暦の日付の一覧
* ISO
* ISO 8601
* JIS X 0301
* ‐ , ハイフン , U+2010 (Unicode) , 1-1-30 (JIS X 0213) ← &#x2010; (16進数) , &#8208; (10進数)
* - , ハイフンマイナス , U+002D (Unicode) , 1-2-17 (JIS X 0213) ← &#x2D; (16進数) , &#45; (10進数)
* − , 負符号 , U+2212 (Unicode) , 1-1-61 (JIS X 0213) ← &minus; , &#x2212; (16進数) , &#8722; (10進数)
* – , enダッシュ , U+2013 (Unicode) , 1-1-30 (JIS X 0213) ← &ndash; , &#x2013; (16進数) , &#8211; (10進数)
* — , emダッシュ , U+2014 (Unicode) , 1-1-29 (JIS X 0213) ← &mdash; , &#x2014; (16進数) , &#8212; (10進数)
* N日間
* 2038年問題

* 年サーチカレンダー - 年表示のない日付の年を割り出す。
* 日数計算｜日付
* 生年月日一覧