問題タブ [leap-second]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - うるう秒を含めて、1970 年 1 月 1 日から何秒経過しましたか?
以下によって与えられる Unix タイムスタンプ:
1970 年 1 月 1 日から経過した秒数をうるう秒なしで返します。
好奇心から、うるう秒を含めて、この日付から実際に経過した秒数を取得するにはどうすればよいですか? (つまり、時間軸上でのこれら 2 つのイベント間の距離)
ノート:
例:
867715190.000 .. 867715202.000
1997 年のこの日はうるう秒があったため、タイムスタンプの範囲は 13 秒 (タイマーで測定) の「実際の期間」を表しますが、Unix のタイムスタンプは+12しか増加していません。例 2: 1970 年 1 月 1 日から 2020 年 1 月 1 日までの実際の経過時間 (この 50 年間隔で 12 うるう年) は、 is
(365*50+12)*24*3600 + number_leap_seconds
であり、not(365*50+12)*24*3600
です。datetime.datetime.utcfromtimestamp((365*50+12)*24*3600)
しかし、はであることがわかります2020-01-01 00:00:00
。明らかに、うるう秒は考慮されていません。Python はうるう秒で何を返しますか、およびUnix 時間とうるう秒にリンクされています
java - Java Unix の時刻とカレンダーが正確な時刻を計算するのはなぜですか?
Unix の時刻には「うるう秒」が含まれていないと聞きました。また、Java Calendar API にはうるう秒が含まれていないと聞きました。
1972年からうるう秒として27秒が追加されました。また、Unix 時間は 1970-01-01 00:00:00 (UTC) から始まりました。
したがって、現在の UTC 時間と Unix 時間には 27 秒の差があると思いました。
私の考えを明確にするために、以下のような実験を行いました。1614766198 は、2021 年 3 月 3 日 10:10:00 (UTC+0) の Unix 時間です。
上記のコードの結果は
出力は「2021-03-03 10:09:58」のようです。
ですから、私の質問は、Java Calendar API が 1970-01-01 00:00:00 (UTC) から 27 秒の差ではなく 2 秒の差を返すのはなぜですか?