0

「時間の始まり」から現在の日付までの日数を計算したい。これは簡単な計算 (timestamp / 24 / 60 / 60 / 1000 = daysFromBeginningOfTime) で簡単に達成できますが、ひねりは、タイム ゾーンも認識する必要があるということです。タイムスタンプは世界中どこでも同じですが、適切なタイムゾーンで解析すると、場所間の違いが反映されるため、タイムスタンプだけを使用しても機能せず、すべてのタイムゾーンの移行を自分で処理したくありません.

: ロンドンの 23:30 で日番号が 18843 の場合、アムステルダムでは 0:30 で日番号は 18844 になります。

私は見ましjoda.timeたが、私が探していたものは本当に見つかりませんでした。誰にもアイデアはありますか?

4

2 に答える 2

1

この問題は、最初の仮定が間違っているために発生すると思います。

OPが彼の例で行う議論は正しくありません。ロンドンやアムステルダムの時計が何を示していても、エポックの開始までの時差は、世界のどこにいるかに関係なく、あらゆる時点で異なります。

したがって、解決策は、指定された入力日付を UTC タイムスタンプに解析し、以前と同様に続行することです。

于 2013-06-25T11:26:31.530 に答える
1

(ゼロは「時間の始まり」ではないという点を無視して...そして時間の始まりの実際の時点はおそらく不明です...)

「特定のタイムゾーンの現地時間 UNIX エポック」 1からの日数を計算する方法は次のとおりです。

  1. ローカル タイムゾーンを表すオブジェクトを取得します。
  2. オブジェクトからタイムゾーンのオフセットを取得します
  3. ミリ秒に変換し、現在の UTC 時間に追加します。
  4. 前と同じように日数を計算します。

1 - ... それが意味するものは何でも。

于 2013-06-25T11:17:32.533 に答える