Czy ktoś mógłby mi wyjaśnić, dlaczego, gdy próbuję uzyskać milisekundy strefy DateTime ze strefą inną niż moja własna, przywraca mi to milisekundę strefy czasowej mojej lokalnej maszyny? Szukam, aby uzyskać milisekund UTC, ale moje lokalne ustawienia aplikacji są ustawione na EST (chociaż jestem naprawdę w Irlandii;))Czas konwersji Jazime czas strefy czasowej na millis
Oto kod:
DateTimeFormatter format = DateTimeFormat.mediumDateTime();
DateTime local = new DateTime();
DateTime utc = new DateTime(System.currentTimeMillis(), DateTimeZone.UTC);
System.out.println("utc zone = " +utc.getZone());
System.out.println("UTC time: " + utc);
long current = utc.getMillis();
System.out.println("current: " + format.print(current));
System.out.println("local: " + format.print(local.getMillis()));
Oto co to drukuje:
utc zone = UTC
UTC time: 2013-08-16T13:36:32.444Z
current: Aug 16, 2013 9:36:32 AM
local: Aug 16, 2013 9:36:32 AM
Obecnie, powinienem pomyśleć, że powinien mieć tę samą datę, co czas UTC?
Twój '' utc' local' i reprezentują te same momenty czasu (tylko z dołączonym różnych strefach czasowych). Dlatego 'getMillis()' (które daje "fizyczny" przedział czasu, który upłynął od "chwili" odpowiadającej epoce unixa), musi zwrócić tę samą wartość. – leonbloy