私は一時的なユーティリティの基本的なメカニズムを理解しようとしています。javaのデータ、オフセット、およびタイムゾーン
だから、私は次の例を作った:
public class Test {
public static void main(String[] args) {
System.out.println(Instant.now().getEpochSecond());
System.out.println(new Date().getTime());
System.out.println(LocalDateTime.now().atZone(ZoneId.systemDefault()).toEpochSecond());
System.out.println(LocalDateTime.now().toEpochSecond(ZoneOffset.UTC));
System.out.println(ZoneId.systemDefault().toString());
}
}
出力は次のとおりです。
1460651620
1460651620182
1460651620
1460662420
Europe/Helsinki
私の現在のsystemDefaultするzoneidは、ヨーロッパ/ヘルシンキ(3時間)である
我々はnew Date()
を作成すると、それは持っていますunixタイムスタンプ(UTC)。
これは印刷結果を比較する際の基準点です。
私の3番目のSystem.out
私は確立されたタイムゾーンsystemDefault
でLocalDateTimeを持っていますが、実際には出力は同じです。私はより大きな価値(+3時間)を期待していました。
2.第4の出力ラインでは、混乱する結果が出ますが。私は同じ値を期待しましたnew Date().getTime()
出力を理解するのに助けが必要です。