Wer kennt sich mit Java aus? Wie erstelle ich eine Variable mit Datentyp datum (siehe unten)?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Es gibt keinen standardisierten Datentyp namens "Datum".

Es gibt Date, falls das gemeint ist. Das ist aber konzeptionell nicht nur ein Datum, sondern ein Zeitpunkt.

Willst du die momentane Zeit als Date, geht das einfach so:

Date jetzt = new Date();

Wenn du unbedingt dein LocalDate in ein Date umwandeln willst, ist das eine Spur komplizierter: du musst ein Instant daraus machen (dabei eine Zeitzone angeben, hier einfach das Systemdefault):

Instant instant = aktuelles_Datum.atStartOfDay(ZoneId.systemDefault()).toInstant(); 

und daraus dann ein Date mit from().

Nichtsnutz12 
Fragesteller
 12.07.2023, 11:10

Kann ich auch mit Date das aktuelle Datum irgendwie deklarieren? Also so wie ich es mit local Date gemacht hab?

0
jo135  12.07.2023, 11:25
@Nichtsnutz12

Wie oben gesagt, du kannst ein LocalDate in ein Date umwandeln. Aber es muss dir klar sein, dass die beiden Klassen unterschiedliche Dinge ausdrücken. Zumindest musst du eine Zeitzone mitgeben.

1
Nichtsnutz12 
Fragesteller
 12.07.2023, 16:21

Das mit Instant klappt, aber ich hab das Problem das das Format komisch ist, es spuckt jetzt sowas aus: „2023-07-11T22:00:00Z“. Ich will es aber so haben: „11.07.2023“?

0
@Nichtsnutz12

Das ist das Standardformat ISO8601. Wenn du ein anderes Format als Text haben willst brauchst du einen DateTimeFormatter dem du übergibst, was du willst. Zum Beispiel die Locale "German".

2

Da du die Frage nochmal gestellt hast, bist du mit der bisherigen Antwort anscheinend noch nicht zufrieden.

Ich muss zwar auch ein bisschen raten, was du machen willst, aber ich denke mal, du willst einfach das aktuelle Datum irgendwo anzeigen und brauchst es daher als String.

Um ein LocalDate in einen String umzuwandeln, gibt es hauptsächlich zwei Varianten:

Variante A: Du gibst ein Muster vor, wie in Excel:

var aktuellesDatum = LocalDate.now();
var muster = DateTimeFormatter.ofPattern("dd.MM.yyyy");
System.out.println(aktuellesDatum.format(muster));

Variante B: Du benutzt das Standardformat, was in deinem Betriebssystem eingestellt ist:

var aktuellesDatum = LocalDate.now();
var muster = DateTimeFormatter.ofLocalizedDate(FormatStyle.MEDIUM);
System.out.println(aktuellesDatum.format(muster));