2012-12-05 17 views
38

Potrzebuję uzyskać liczbę milisekund od 1970-01-01 UTC do teraz UTC w Javie.Jak uzyskać milisekundy z epoki (1970-01-01) w Javie?

Chciałbym również móc uzyskać liczbę milisekund od 1970-01-01 UTC do dowolnej innej daty czasu UTC.

+3

[Co pan próbował?] (Http://whathaveyoutried.com) – thegrinner

+0

nie wykazuje żadnego wysiłku badawczego . – jlordo

+1

@PaulG - Numer jeden powód downwój to * wysiłek badawczy *. Pytanie rozwiązuje prosty Google. –

Odpowiedz

96

Co powiecie na System.currentTimeMillis()?

Z JavaDoc:

Powroty:różnica, mierzony w milisekundach, między obecnym czasie i północy 1 stycznia 1970 UTC

Java 8 wprowadza ramy java.time, w szczególności klasa Instant, która "... modeluje ... punkt na linii czasu ...":

long now = Instant.now().toEpochMilli(); 

Powroty:liczba milisekund od epoki 1970-01-01T00: 00: 00Z - czyli prawie tak samo jak wyżej :-)

Cheers,

+2

Ponieważ ta odpowiedź to rok 2012, a Java 8 nie było w pobliżu, jest dobra. Równie dobra jest odpowiedź java.time od Prezemek. To uwzględnia obecną architekturę Java 8 java.time. –

+1

For Edification: Przetestowałem kilka sposobów, aby uzyskać czas UTC w milisekundach i znalazłem java.time.Instant.now(). DoEpochMilli, aby działał dobrze. Porównywałem to do opcji metody ZonedDateTime.now (ZoneOffset.UTC) (które widziałem w innych postach jako opcje) i zgodnie z oczekiwaniami podejście Java.time.Instant.now() było trochę szybsze na moim komputerze ... niskie jednocyfrowe milisekundy w trzydziestu następujących po sobie biegach. –

10

także spróbuj System.currentTimeMillis()

Powiązane problemy