In diesem Beitrag wird erläutert, wie Sie das aktuelle Datum und die aktuelle Uhrzeit in einer bestimmten Zeitzone in Java erhalten.
1. Verwendung des Date-Objekts
Eine einfache Lösung besteht darin, a zu konstruieren Date
Objekt ohne Argumente, das mit dem aktuellen Datum und der aktuellen Uhrzeit mit Millisekundengenauigkeit initialisiert wird.
1 2 3 4 5 6 7 8 9 |
import java.util.Date; public class Main { public static void main(String[] args) { Date date = new Date(); System.out.println(date); // Sonntag, 24. Dezember, 16:34:27 PDT 2017 } } |
Um ein zu erhalten Date
Beispiel aus einem Instant
Objekt, mag:
1 2 3 4 5 6 7 8 9 10 |
import java.time.Instant; import java.util.Date; public class Main { public static void main(String[] args) { Date date = Date.from(Instant.now()); System.out.println(date); // Freitag, 24. Dezember, 16:34:27 PDT 2021 } } |
Um das aktuelle Datum und die Uhrzeit im angegebenen Format zu erhalten, können Sie die verwenden SimpleDateFormat
Klasse. Es ermöglicht Ihnen, Datumsangaben mit benutzerdefinierten Mustern für die Formatierung von Datum und Uhrzeit zu formatieren und zu analysieren.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; public class Main { public static void main(String[] args) { DateFormat dateFormat = new SimpleDateFormat("EEE, d MMM yyyy, HH:mm:ss z"); String date = dateFormat.format(new Date()); System.out.println(date); // So, 24. Dez. 2017, 16:34:27 IST } } |
Das java.util.Calendar
-Klasse kann auch verwendet werden, um das aktuelle Datum und die Uhrzeit zu erhalten. Diese Klasse sollte vermieden werden, wenn Datums- und Uhrzeitinformationen vertraulich sind.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Calendar; public class Main { public static void main(String[] args) { DateFormat dateFormat = new SimpleDateFormat("EEE, MMM d, yyyy '@' HH:mm:ss"); String date = dateFormat.format(Calendar.getInstance().getTime()); System.out.println(date); // Sonntag, 24. Dezember 2017 um 16:34:27 Uhr } } |
2. Joda-Zeit
Die standardmäßigen Datums- und Zeitklassen vor Java SE 8 sind schlecht gestaltet und enthalten mehrere Fehler. Das Joda-Time Die date-time-Bibliothek bietet einen hochwertigen Ersatz vor Java SE 8. Um das vollständige Datum und die vollständige Uhrzeit mit der Zeitzone zu erhalten, können Sie die verwenden DateTime
Klasse.
1 2 3 4 5 6 7 8 9 |
import org.joda.time.DateTime; public class Main { public static void main(String[] args) { DateTime datetime = DateTime.now(); System.out.println(datetime); // 2017-12-24T16:34:27.459-08:00 } } |
Die Joda-Time-Klasse unterstützt auch die Zeitzonenfunktionalität durch die DateTimeZone
Klasse.
1 2 3 4 5 6 7 8 9 10 |
import org.joda.time.DateTime; import org.joda.time.DateTimeZone; public class Main { public static void main(String[] args) { DateTime datetime = DateTime.now(DateTimeZone.forID("Australia/Sydney")); System.out.println(datetime); // 2021-12-24T23:47:11.949+11:00 } } |
3. Verwenden LocalDateTime
class
Ab Java SE 8 können Sie die verwenden java.time
Paket, das viele Verbesserungen gegenüber den bestehenden Java-APIs für Datum und Uhrzeit bietet. Um das aktuelle Datum und die Uhrzeit mit der Systemuhr und der Standardzeitzone abzurufen, verwenden Sie die LocalDateTime.now()
Methode.
1 2 3 4 5 6 7 8 9 |
import java.time.LocalDateTime; public class Main { public static void main(String[] args) { LocalDateTime datetime = LocalDateTime.now(); System.out.println(datetime); // 2017-12-24T16:34:27.598873800 } } |
Sie können einen Formatierer mit übergeben format()
Methode zum Formatieren von Datum und Uhrzeit.
1 2 3 4 5 6 7 8 9 10 11 |
import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; public class Main { public static void main(String[] args) { String dateTime = LocalDateTime.now().format(DateTimeFormatter.ISO_DATE_TIME); // 2017-12-24T04:34:27.0871036-06:00[America/Chicago] System.out.println(dateTime); } } |
Wenn Sie einen benutzerdefinierten Datums-/Uhrzeit-Formatierer anstelle der Standard-Datums-/Uhrzeit-Formatierer erstellen möchten, verwenden Sie die DateTimeFormatter.ofPattern()
Methode.
1 2 3 4 5 6 7 8 9 10 11 |
import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; public class Main { public static void main(String[] args) { String dateTime = DateTimeFormatter.ofPattern("MMM dd yyyy, hh:mm:ss a") .format(LocalDateTime.now()); System.out.println(dateTime); // 24. Dezember 2021, 16:34:27 Uhr } } |
4. Verwenden ZonedDateTime
class
Um die Zeitzoneninformationen von der Systemuhr abzurufen, sollten Sie in Betracht ziehen, zur ZonedDateTime.now()
Methode.
1 2 3 4 5 6 7 8 9 |
import java.time.ZonedDateTime; public class Main { public static void main(String[] args) { ZonedDateTime datetime = ZonedDateTime.now(); System.out.println(datetime); // 2017-12-24T11:34:27.502430Z[Etc/UTC] } } |
Um das aktuelle Datum und die Uhrzeit von der Systemuhr in der angegebenen Zeitzone abzurufen, können Sie eine Zonen-ID für angeben ZonedDateTime.now()
Methode.
1 2 3 4 5 6 7 8 9 10 11 |
import java.time.ZoneId; import java.time.ZonedDateTime; public class Main { public static void main(String[] args) { ZonedDateTime dateTime = ZonedDateTime.now(ZoneId.of("America/Chicago")); // 2017-12-24T05:34:27.703818700-06:00[America/Chicago] System.out.println(dateTime); } } |
Um Datum und Uhrzeit zu formatieren, können Sie mithilfe von einen Formatierer angeben format()
Methode.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
import java.time.ZoneId; import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; public class Main { public static void main(String[] args) { String dateTime = ZonedDateTime.now(ZoneId.of("America/Chicago")) .format(DateTimeFormatter.ISO_DATE_TIME); // 2017-12-24T05:42:28.0871036-06:00[America/Chicago] System.out.println(dateTime); } } |
Um benutzerdefinierte Formatierer für Datum und Uhrzeit zu erstellen, verwenden Sie die DateTimeFormatter.ofPattern()
Methode statt.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
import java.time.ZoneId; import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; public class Main { public static void main(String[] args) { String timestamp = ZonedDateTime.now(ZoneId.of("Asia/Kolkata")) .format(DateTimeFormatter.ofPattern("MM.dd.yyy, hh.mm.ss a")); System.out.println(timestamp); // 24.12.2017, 17.34:27 Uhr } } |
5. Verwenden Instant
class
Das Instant
Die Klasse modelliert einen augenblicklichen Punkt auf der Zeitachse. Um den aktuellen Zeitpunkt mit Hilfe der Systemuhr zu erhalten, können Sie die verwenden Instant.now()
Methode.
1 2 3 4 5 6 7 8 9 |
import java.time.Instant; public class Main { public static void main(String[] args) { Instant instant = Instant.now(); System.out.println(instant); // 2017-12-24T12:05:28.940474900Z } } |
Es geht darum, das aktuelle Datum und die aktuelle Uhrzeit in einer bestimmten Zeitzone in Java zu erhalten.