Wie kann ich das aktuelle Datum und die Uhrzeit in Java abfragen?
Ich bin auf der Suche nach etwas, das gleichwertig ist mit DateTime.Now
von C#.
Wie kann ich das aktuelle Datum und die Uhrzeit in Java abfragen?
Ich bin auf der Suche nach etwas, das gleichwertig ist mit DateTime.Now
von C#.
Konstruieren Sie einfach eine neue Date
Objekt ohne Argumente; dadurch wird dem neuen Objekt das aktuelle Datum und die aktuelle Uhrzeit zugewiesen.
import java.util.Date;
Date d = new Date();
Mit den Worten von die Javadocs para [der Null-Argument-Konstruktor](http://java.sun.com/javase/6/docs/api/java/util/Date.html#Date()) :
Weist ein Date-Objekt zu und initialisiert ihn so, dass er den Zeitpunkt der Zuteilung repräsentiert auf die nächste Millisekunde genau gemessen.
Stellen Sie sicher, dass Sie Folgendes verwenden java.util.Date
und nicht java.sql.Date
-- letzteres hat keinen Null-Arg-Konstruktor und hat eine etwas andere Semantik, die das Thema einer ganz anderen Unterhaltung ist :)
Die Java Datum y Kalender Klassen werden von vielen als schlecht konzipiert angesehen. Sie sollten einen Blick werfen auf Joda Zeit , eine Bibliothek, die häufig anstelle der in Java eingebauten Datumsbibliotheken verwendet wird.
Das Äquivalent von DateTime.Now
in Joda Zeit ist:
DateTime dt = new DateTime();
Update
Wie in den Kommentaren erwähnt, haben die letzten Versionen von Joda Time eine DateTime.now()
Methode, also:
DateTime dt = DateTime.now();
Instant.now()
Die Klasse java.util.Date wurde durch das neue java.time-Paket ( Tutorial ) in Java 8 und höher. Die alten java.util.Date/.Calendar-Klassen sind bekanntermaßen mühsam, verwirrend und fehlerhaft. Vermeiden Sie sie.
ZonedDateTime
Ermittelt den aktuellen Zeitpunkt in java.time.
ZonedDateTime now = ZonedDateTime.now();
A ZonedDateTime
kapselt:
Wenn keine Zeitzone angegeben wird, wird die aktuelle Standardzeitzone Ihrer JVM stillschweigend zugewiesen. Es ist besser, Ihre gewünschte/erwartete Zeitzone anzugeben, als sich implizit auf die Standardeinstellung zu verlassen.
ZoneId z = ZoneId.of( "Pacific/Auckland" );
ZonedDateTime zdt = ZonedDateTime.now( z );
Im Allgemeinen ist es besser, sich daran zu gewöhnen, die Back-End-Arbeiten (Geschäftslogik, Datenbank, Speicherung, Datenaustausch) in UTC Zeitzone. Der obige Code stützt sich implizit auf die aktuelle Standardzeitzone der JVM.
En Instant
stellt einen Zeitpunkt in der Zeitachse in UTC mit einer Auflösung von Nanosekunden dar.
Instant instant = Instant.now();
En Instant
Klasse ist eine grundlegende Bausteinklasse in java.time und wird in Ihrem Code häufig verwendet werden.
Wenn Sie mehr Flexibilität bei der Formatierung benötigen, verwandeln Sie sich in eine OffsetDateTime
. Angeben einer ZoneOffset
Objekt. Für UTC verwenden Sie das praktische Konstante für UTC .
OffsetDateTime odt = instant.atOffset( ZoneOffset.UTC );
Sie können leicht eine andere Zeitzone für die Präsentation für den Benutzer einstellen. Verwenden Sie eine Name der richtigen Zeitzone , jamais die Codes mit 3-4 Buchstaben wie EST
ou IST
.
ZoneId z = ZoneId.of( "America/Montreal" );
ZonedDateTime nowMontreal = instant.atZone( z );
Erzeugt eine String-Darstellung dieses Datums-Zeit-Wertes, lokalisiert.
String output = DateTimeFormatter
.ofLocalizedDate( FormatStyle.FULL )
.withLocale( Locale.CANADA_FRENCH )
.format ( nowMontreal );
Instant
Oder, um in UTC zu bleiben, verwenden Sie Instant
. Eine Instant
Objekt stellt einen Moment auf der Zeitachse dar, mit Nanosekunden-Auflösung, immer in UTC. Dies stellt den Baustein für eine zonierte Datumszeit dar, zusammen mit einer Zeitzonenzuweisung. Sie können sich das konzeptionell so vorstellen:
Sie können eine Instant
von einer ZonedDateTime
.
Instant instantNow = zdt.toInstant();
Sie können mit einem Instant beginnen. Sie müssen hier keine Zeitzone angeben, da Instant
ist immer in UTC.
Instant now = Instant.now();
Ich bevorzuge die Verwendung des Kalenderobjekts.
Calendar now = GregorianCalendar.getInstance()
Ich finde es viel einfacher, damit zu arbeiten. Sie können auch ein Datumsobjekt aus dem Kalender abrufen.
http://java.sun.com/javase/6/docs/api/java/util/GregorianCalendar.html
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.