JSR 310 :: System.currentTimeMillis() vs Sofortige.toEpochMilli() :: TimeZone

Könnten Sie bitte etwas Licht auf, wie eine entsprechende Epoche Zeit in Millisekunden, für ein Standard-system-Zeitzone und die angegebene Zeitzone.

Gegeben

1. Zeitzone: GMT+3

2. Der folgende code-Schnipsel:

import java.time.*;

public class Main {        
    public static void main(String[] args) {
        System.out.println(LocalDateTime
            .now()
            .atZone(ZoneOffset.UTC)
            .toInstant()
            .toEpochMilli()
        );
        System.out.println(LocalDateTime
            .now()
            .atZone(ZoneOffset.of("+3"))
            .toInstant()
            .toEpochMilli()
        );
        System.out.println(System.currentTimeMillis());
    }
}

3. Ausgabe:

1444158955508
1444148155508
1444148155508

4. JavaDoc für System.currentTimeMillis(), die sagt, dass der zurückgegebene Wert die Differenz, gemessen in Millisekunden zwischen der aktuellen Zeit und Mitternacht 1. Januar 1970 UTC.

So, warum

  1. die Ausgabe der LocalDateTime bei GMT+3 ist der gleiche wie der System.currentTimeMillis(), obwohl die docs für die System.currentTimeMillis() erwähnen UTC?
  2. die Ausgabe der LocalDateTime bei UTC unterscheidet sich von System.currentTimeMillis(), obwohl die docs für die System.currentTimeMillis() erwähnen UTC?
InformationsquelleAutor szhem | 2015-10-06
Schreibe einen Kommentar