[1] まだ到来していない日時は不安定で不確実です。 が、そんな将来の日時を取り扱うことも、よくあります。
[2] グレゴリオ暦は機械的に日付を定めているので、無限の先まで日付を確定できます。 これはグレゴリオ暦の大きな特徴となっています。
[3] 他の多くの暦法は、遠い将来の日付が確定できません。 天体観測によってその年の暦が定められるので、 現在から遠く離れるほど、予測精度は下がっていきます。 蒙古暦のように、最終的に人間の判断で確定させられる暦法もあります。
[5] 西暦や皇紀などは機械的に年数を定めているので、無限の先まで年を確定できます。
[6] 元号は、改元がいつ行われるかまったく予測できません。
元号を使う場合、将来の日付は実際にその時点では利用されない可能性が高い
(そして現に利用されなかった) 元号で記述されることがよくあります。
改元の際に訂正されることもあれば、そのまま残されることもあります。
旧元号表記の日付も、法的には有効とされています。
[58] 厳密に言えば延長年号は「存在しない年の表記」になるのではなく、 「最適な年の表記ではない年の表記」になります。
[11] 標準時は、改正される可能性があります。 地球全体で見れば、ほとんど毎年どこかの地域で標準時が変更されています。
[12] 夏時刻の実施の有無や時期は、頻繁に改正されています。
実施の月日が毎年自動的に決まる地域もありますが、
そうでない地域がたくさんあります。
[13] こうした変更は人間の判断によるものですから、まったく予測できません。 変更の実施直前に突然発表されることもあります。
[14] 将来の日時を記述したとしても、 現在からの距離はずれていく可能性があります。
[15] 1年後のある月日について、「10時から会議」とスケジュールを登録したとします。 翌年までに夏時刻の開始時期が変更されていると、「10時」 が指している時刻が登録時点と当日とでずれている可能性があります。
[33] 体育館利用予約システムで「毎週17時から18時」の利用を登録したとします。 登録前に夏時刻の期間が確定していない場合や登録後に夏時刻の期間が改正された場合でも、 「登録時点で17時と考えられた時刻」や「登録した日の17時にそれまでの日数分 24 を加えた時刻」 ではなく、「実際に当日に用いられることになった時刻での17時」 が各週の予約開始時刻となるべきです。
[36] 将来の日時を、時間帯のない日時を時間帯との組み合わせで保持するのが、 最も簡単な対処方法でしょうか。
[37] ある時点まで同じ標準時を共有してきた地域の一部が異なる標準時に移行することで時間帯が分割 (新設) されることがたまに (何年かに1回くらい) あります。 この場合は時間帯をそのままにするか、 新しいものに変更するかの判断が必要となります。
[19] 実際、世界時や秒の定義は過去に数回改正されています。
[20] 極めて高い精度が求められる専門分野を除けば、大きな影響が生じる変更が加えられる可能性は低いと思われます。 しかし、閏秒の廃止が検討されていたりして、将来どのような変更が行われるかは予測しきれません。
[32] 精度が必要ない分野では、閏秒のない時刻系を用いるのが便利と考えられています。
[34] SI秒や (現在においてはそれと等しい) 暦秒の長さは、 何度か定義が正確に改められました。 これからも予期せぬ将来のいずれかのタイミングで改正される可能性があります。
[35] ほとんどの場合に秒は固定の長さとして扱い、 秒より短いミリ秒やマイクロ秒なども秒を単純に十進法で分割した長さとしていますが、 厳密な時間の長さが問題となる場面では、 そうした仮定が成立しないこととなります。
[17] 計算機システムなどで日時を扱う場合、
将来の日時の体系の変更にある程度自動的に追随できる仕組みを作っておく必要があります。
[22] 将来の日付の扱いは面倒です。将来行われうる暦法の変更を我々は知り得ないからです。 おそらく最も現実的な解は、
... ことくらいでしょうか。
[50] できるだけ低コストで対応したいものですが、 予測不能な将来の改暦に対応可能にするのは困難、 あるいは不可能でしょう。
[52] 太陽の寿命が近づき人類が新天地に移住した時、 地球の暦法は新生活に不便なので、 改暦されるに違いありません。 それはいったいどんな暦法でしょうか。 それを今から織り込んでおくのは不可能です。
[23] また、情報記録用の形式に通し時 (Un*xtime やユリウス日など) ではなく ISO 8601 のような人間可読形式を採用するのも良い考えかもしれません。 2003年1月1日の (365*100+閏日の数) 日後が2103年1月1日になる保証はありませんからね。
[28] 将来閏日が増えたり減ったり、あるいは時の為政者が2月30日を作るとか言い出したらどうでしょう? 理論上は閏日の調整はグレゴリオ暦で数万年は狂わないそうですけど、後者はあり得るかも。なんにせよ、将来のことは分からない。だから例えば、 10000-02-31
みたいなデータは、もし処理系に余裕があるなら、内部形式に変換して外部形式に再変換した時にも 10000-02-31
に戻ってくるのがいい気がします。まあ実際にはそんなこと考えてもいられないでしょうし、考える必要もあまりないでしょうけど。
[30] 日時に関わる計算は、日時の値に依存しない計算量で行えるものとするべきです。
[31] あるプログラミング言語用の日時処理ライブラリーは、
日時オブジェクトの作成時に UTC と地方時の換算を行います。
この時現在の夏時刻の規則を無限に将来に延長するため、
現在から当該日時まで毎年の夏時刻の有無を検査します
(本当はそんな検査などしなくても求められるはずですが...)。
そのため、西暦6000年のような大きな値の日時を与えると、異常に時間がかかります。
[24] Microsoft Office Outlook 用タイム ゾーン データ更新ツールを使用してタイム ゾーンの変更に対処する方法 () https://support.microsoft.com/ja-jp/help/931667/how-to-address-time-zone-changes-by-using-the-time-zone-data-update-tool-for-microsoft-office-outlook
[10] [tz] DST ends 2040 in Oracle database () https://mm.icann.org/pipermail/tz/2019-January/027444.html
[204] Storing UTC is not a silver bullet – Jon Skeet's coding blog () https://codeblog.jonskeet.uk/2019/03/27/storing-utc-is-not-a-silver-bullet/amp/
[45] How to save datetimes for future events - (when UTC is not the right answer) () http://www.creativedeletion.com/2015/03/19/persisting_future_datetimes.html
[53] 61世紀 :: 年代 :: 東文研アーカイブデータベース, https://www.tobunken.go.jp/materials/nkera/61%e4%b8%96%e7%b4%80
「年代別」 欄を見ると、 「07世紀」 から 「19世紀」 のほかに、 「61世紀 (1) 66世紀 (1) 67世紀 (1) 68世紀 (1) 69世紀 (1) 70世紀 (1) 72世紀 (1) 75世紀 (1) 92世紀 (1) #VALUE! (1)」 があります。括弧内は件数を表します。
[54] この謎の61世紀から92世紀のデータを見ると、 「推古天皇14年・天智天皇5年 (0606)」 のようにあって、 3桁西暦年の上2桁から誤って西暦世紀を計算したものとわかります。
このデータベースは 「『日本絵画史年紀資料集成 十―十四世紀』(1979年)、『日本絵画史年紀資料集成 十五世紀』(2011年)に採録された年紀資料にもとづきつつ、さらに資料の収集をすすめたうえで、作品名・所蔵者名・銘文などの各項目内容から検索ができるように整えたもの」 >>53 だといいます。 すると「さらに」収集したものから誤った世紀情報が混入したものと推察されます。
「#VALUE!」 に登録されている資料の年次は 「文政5年 () 」 とあって、 西暦年の登録が抜けております。 つまり他のデータの世紀はこの西暦年から計算されたものとみられます。 正しく登録された7世紀から10世紀の資料の西暦年とも外見上違いが見られないので、 データベース上には計算済みの西暦世紀が保存されていて、 そのうちいくつかは間違っていて、いくつかは正しいのでしょうか。
[55] この種の間違いはないでもないので、 ふつうわざわざ問題とするほどのことでもないのですが、 「より質の高い資料の提示が求められる昨今の時勢に対応し」 て制作されたという国立研究所の成果物が、 Webページを1回見て確認すれば誰でも気づかないはずのない間違いを含んだまま放置されているのは、 どうなんでしょうね。
[56] Internet Archive をみると: 年紀資料集成 :: 東文研アーカイブデータベース, https://web.archive.org/web/20200502224525/https://www.tobunken.go.jp/materials/nenki、 平成31年時点ではまだおかしなデータはみられなくて、 令和2年から変なデータが入っているので、 比較的最近追加されたデータがおかしな処理を経ているのでしょう。