So konvertieren Sie ein Datum in Millisekunden

8

Ich möchte String myDate = "2014/10/29 18:10:45" in konvertieren %Code%? Ich suche nach Google, aber ich kann nur herausfinden, wie ms in Datum konvertiert wird.

Hinweis: Um es deutlich zu machen, möchte ich die ms vom Datum im 1970/1/1 Format bekommen.

    
HydroTekZ 29.10.2014, 17:39
quelle

4 Antworten

30

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.

    
Luiggi Mendoza 29.10.2014, 17:42
quelle
4

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.

    
allTwentyQuestions 29.10.2014 17:49
quelle
3

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

%Vor%     
Ole V.V. 02.04.2017 19:49
quelle
1

Zeitzone

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.

Joda-Zeit

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.

ISO 8601

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.

Beispielcode

%Vor%     
Basil Bourque 29.10.2014 20:26
quelle

Tags und Links