Wie konvertiere ich einen org.joda.time.LocalDateTime
in einen Unix-Zeitstempel, da die lokale Zeit in der UTC-Zeitzone liegt?Joda LocalDateTime in Unix-Zeitstempel konvertieren
Beispiel:
new LocalDateTime(2015, 10, 02, 11, 31, 40)
>1443785500
.
Wie konvertiere ich einen org.joda.time.LocalDateTime
in einen Unix-Zeitstempel, da die lokale Zeit in der UTC-Zeitzone liegt?Joda LocalDateTime in Unix-Zeitstempel konvertieren
Beispiel:
new LocalDateTime(2015, 10, 02, 11, 31, 40)
>1443785500
.
Vorausgesetzt, dass Sie wollen, dass die Unix-Zeitstempel „der gegebene LocalDateTime
, in UTC“ der einfachste Ansatz ist es nur ein DateTime
zu konvertieren, indem die DateTimeZone
für UTC Angabe und konvertieren:
LocalDateTime local = new LocalDateTime(2015, 10, 02, 11, 31, 40);
DateTime utc = local.toDateTime(DateTimeZone.UTC);
long secondsSinceEpoch = utc.getMillis()/1000;
Notiere die Verwendung von Sekunden hier als Unix-Zeitstempel - andere APIs (zB java.util.Date
) können Millisekunden seit der Unix-Epoche erwarten.
Sie können auch 'DateTimeConstants.MILLIS_PER_SECOND' anstelle von' 1000' verwenden oder 'Duration.millis (local.toDateTime (DateTimeZone.UTC) .getMillis) .getStandardSeconds' verwenden. – mixel
Einfach und ordentlich, wenn der Joda-Entwickler Gründe ausstellt, um getLocalMillis() als öffentlich zugänglich zu machen. Link: https://github.com/JodaOrg/joda-time/issues/87 – vijay
Wenn ich mich erinnere, Unix Zeitstempel ist die Anzahl der Sekunden seit der Unix-Epoche, vielleicht so etwas wie [dies] (http://stackoverflow.com/questions/22990067/how-to-extract-epoch-from-localdate- und-localdatetime) – MadProgrammer
Eine 'LocalDateTime' hat keine Zeitzone, also repräsentiert sie nicht ein ponit in der Zeit. Sie müssen eine Zeitzone angeben, damit dies sinnvoll ist. –
@JonSkeet Es ist UTC! –