Sie haben kein Date
, Sie haben eine String
Darstellung eines Datums. Sie sollten das String
in ein Date
umwandeln und dann die Millisekunden erhalten. Um ein String
in ein Date
umzuwandeln und umgekehrt, sollten Sie % verwenden. co_de% Klasse.
Hier ist ein Beispiel dafür, was Sie tun möchten / müssen (vorausgesetzt, die Zeitzone ist hier nicht involviert):
%Vor%Sei aber vorsichtig, denn in Java sind die Millisekunden die Millisekunden zwischen der gewünschten Epoche und 1970-01-01 00:00:00.
Mit der Klasse SimpleDateFormat können Sie eine String
analysieren. in ein java.util.Date
-Objekt. Sobald Sie das Date-Objekt haben, können Sie die Millisekunden seit der Epoche abrufen, indem Sie Date.getTime()
aufrufen.
Das vollständige Beispiel:
%Vor% Beachten Sie, dass Sie hier ein long
und kein Double erhalten, aber ich denke, das ist wahrscheinlich das, was Sie beabsichtigt haben. Die Dokumentation für die SimpleDateFormat
-Klasse enthält Informationen darüber, wie sie eingerichtet wird, um verschiedene Formate zu parsen.
Die Antwort für 2017 lautet: Verwenden Sie die in Java 8 eingeführten Datums- und Zeitklassen (und auch die Rückportierung nach Java 6 und 7 im ThreeTen Backport) ).
Wenn Sie die Datum-Uhrzeit-Zeichenfolge in der Zeitzone des Computers interpretieren möchten:
%Vor% Wenn eine andere Zeitzone, füllen Sie diese Zone anstelle von ZoneId.systemDefault()
ein. Wenn UTC, verwenden Sie
Die akzeptierte Antwort ist korrekt, außer dass das entscheidende Problem der Zeitzone ignoriert wird. Ist Ihr Eingabe-String 18:10 in Paris oder Montréal? Oder UTC ?
Verwenden Sie einen richtigen Zeitzonennamen . Normalerweise ein Kontinent plus Stadt / Region. Zum Beispiel "Europe/Oslo"
. Vermeiden Sie die 3- oder 4-Buchstaben-Codes, die weder standardisiert noch eindeutig sind.
Im Folgenden finden Sie die gleiche Art von Code, aber verwenden Sie die Joda-Time 2.5 Bibliothek und Bearbeitungszeitzone.
Die Klassen java.util.Date, .Calendar und .SimpleDateFormat sind bekanntermaßen mühsam, verwirrend und fehlerhaft. Vermeide sie. Verwenden Sie entweder Joda-Time oder das Paket java.time (inspiriert von Joda-Time), das in Java 8 integriert ist.
Ihre Zeichenfolge ist fast im ISO 8601-Format. Die Schrägstriche müssen Bindestriche sein und der SPACE in der Mitte sollte durch ein T
ersetzt werden. Wenn wir das optimieren, kann der resultierende String direkt in den Konstruktor eingegeben werden, ohne dass ein Formatierer angegeben werden muss. Joda-Time verwendet ISO 8701-Formate als Standard für das Parsen und Erzeugen von Strings.