So konvertieren Sie String in Datum - Java
In diesem Tutorial zeigen wir Ihnen, wie Sie einen String injava.util.Date
konvertieren. Viele Java-Anfänger stecken in der Datumskonvertierung fest und hoffen, dass diese Zusammenfassung Ihnen in gewisser Weise hilft.
// String -> Date SimpleDateFormat.parse(String); // Date -> String SimpleDateFormat.format(date);
In der folgenden Tabelle finden Sie einige der injava.text.SimpleDateFormat
verwendeten allgemeinen Datums- und Zeitmuster. Beziehen Sie sich auf dieseJavaDoc
Brief |
Beschreibung |
Beispiele |
y |
Year |
2013 |
M |
Monat im Jahr |
07. Juli, 7 |
d |
Tag im Monat |
1-31 |
E |
Tagesname in Woche |
Freitag Sonntag |
a |
Am/pm marker |
AM, PM |
H |
Stunde am Tag |
0-23 |
h |
Stunde in morgens / abends |
1-12 |
m |
Minute in Stunde |
0-60 |
s |
Zweiter in der Minute |
0-60 |
Note
Dieses Java 8-Beispiel könnte Sie interessieren -How to convert String to LocalDate
1. Zeichenfolge = 7. Juni 2013
Bei 3 ‘M’ wird der Monat als Text (Mo-Dez) interpretiert, ansonsten als Zahl (01-12).
TestDateExample1.java
package com.example.date; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class TestDateExample1 { public static void main(String[] argv) { SimpleDateFormat formatter = new SimpleDateFormat("dd-MMM-yyyy"); String dateInString = "7-Jun-2013"; try { Date date = formatter.parse(dateInString); System.out.println(date); System.out.println(formatter.format(date)); } catch (ParseException e) { e.printStackTrace(); } } }
Ausgabe
Fri Jun 07 00:00:00 MYT 2013 07-Jun-2013
2. Zeichenfolge = 07.06.2013
TestDateExample2.java
package com.example.date; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class TestDateExample2 { public static void main(String[] argv) { SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy"); String dateInString = "07/06/2013"; try { Date date = formatter.parse(dateInString); System.out.println(date); System.out.println(formatter.format(date)); } catch (ParseException e) { e.printStackTrace(); } } }
Ausgabe
Fri Jun 07 00:00:00 MYT 2013 07/06/2013
3. String = Fr, 7. Juni 2013
TestDateExample3.java
package com.example.date; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class TestDateExample3 { public static void main(String[] argv) { SimpleDateFormat formatter = new SimpleDateFormat("E, MMM dd yyyy"); String dateInString = "Fri, June 7 2013"; try { Date date = formatter.parse(dateInString); System.out.println(date); System.out.println(formatter.format(date)); } catch (ParseException e) { e.printStackTrace(); } } }
Ausgabe
Fri Jun 07 00:00:00 MYT 2013 Fri, Jun 07 2013
4. String = Freitag, 7. Juni 2013, 12:10:56 Uhr
TestDateExample4.java
package com.example.date; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class TestDateExample4 { public static void main(String[] argv) { SimpleDateFormat formatter = new SimpleDateFormat("EEEE, MMM dd, yyyy HH:mm:ss a"); String dateInString = "Friday, Jun 7, 2013 12:10:56 PM"; try { Date date = formatter.parse(dateInString); System.out.println(date); System.out.println(formatter.format(date)); } catch (ParseException e) { e.printStackTrace(); } } }
Ausgabe
Fri Jun 07 12:10:56 MYT 2013 Friday, Jun 07, 2013 12:10:56 PM
5. Zeichenfolge = 2014-10-05T15: 23: 01Z
Z-Suffix bedeutet UTC,java.util.SimpleDateFormat
analysiert es nicht richtig. Sie müssen das Suffix Z durch "+0000" ersetzen.
TestDateExample5.java
package com.example.date; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class TestDateExample5 { public static void main(String[] argv) { SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ"); String dateInString = "2014-10-05T15:23:01Z"; try { Date date = formatter.parse(dateInString.replaceAll("Z$", "+0000")); System.out.println(date); System.out.println("time zone : " + TimeZone.getDefault().getID()); System.out.println(formatter.format(date)); } catch (ParseException e) { e.printStackTrace(); } } }
Ausgabe
Sun Oct 05 23:23:01 MYT 2014 time zone : Asia/Kuala_Lumpur 2014-10-05T23:23:01+0800
In Java 8 können Sie es in einjava.time.Instant
-Objekt konvertieren und mit einer bestimmten Zeitzone anzeigen.
TestDateExample6.java
package com.example.date; import java.time.*; public class TestDateExample6 { public static void main(String[] argv) { String dateInString = "2014-10-05T15:23:01Z"; Instant instant = Instant.parse(dateInString); System.out.println(instant); //get date time only LocalDateTime result = LocalDateTime.ofInstant(instant, ZoneId.of(ZoneOffset.UTC.getId())); System.out.println(result); //get date time + timezone ZonedDateTime zonedDateTime = instant.atZone(ZoneId.of("Africa/Tripoli")); System.out.println(zonedDateTime); //get date time + timezone ZonedDateTime zonedDateTime2 = instant.atZone(ZoneId.of("Europe/Athens")); System.out.println(zonedDateTime2); } }
Ausgabe
2014-10-05T15:23:01Z 2014-10-05T15:23:01 2014-10-05T17:23:01+02:00[Africa/Tripoli] 2014-10-05T18:23:01+03:00[Europe/Athens]