Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Vergleichen von datetime mit GregorianCalender-Werte

Empfohlene Antworten

Veröffentlicht

Hallo,

Also ich habe 2 Datumswerte.

Ich hole mir datetime-Werte aus einer Datenbank. Und die Werte, was ich per GregorianCalender in meine Programm erstelle.

Die Daten aus der Datenbank sieht ja so aus: 2006-17-12 00.00.00.

Die GregorianCalender habe ich so gebastelt: 17.12.2006.

Jetzt brauche ich eure Hilfe.

Wie kann ich diese Datum Werte mit einander vergleichen? Ich will nur wissen, ob die 2 Werte auf den selben Tag zeigen.

Muss ich zuerst den Wert aus der Datenbank irgendwie ins String umwandeln und dann mit substring die werte ausschneiden,

oder gibt es eine einfachere Lösung??

Vielen Dank im Voraus.

Tschüss

Ich habe mal einen Blick auf die Klasse java.sql.Date geworfen. Das sie von java.util.Date erbt, kannst einfach das Object aus der Datenbank auf java.sql.Date casten und einem Calendar zuweisen. Dann kannst du die beiden Calendar miteinander vergleichen.


GregorianCalendar c1, c2;  // c1 entspricht deinem schon ex. Calendar

java.sql.Date sqlDate;

//...

sqlDate = rs.getDate(//...);

c2.setTime(sqlDate);

//...

// Vergleichen

if (c1.get(Calendar.YEAR) == c2.get(Calendar.YEAR) &&

    c2.get(Calendar.DAY_OF_YEAR) == c2.get(Calendar.DAY_OF_YEAR)) {

//...

}

Soweit das Prinzip verstanden?

Hallo,

zur Erst: vielen Dank für deine Antwort Enrico.

Jetzt versuche ich per GregorianCalendar ein Datum zu erstellen. Und hab folgendes Problem:

Ich setze das Datum 18.12.2006. Dann möchte ich die einzelne Datum als Kontrolle noch mal ausgeben:

gc2 = new GregorianCalendar(2006,12,18);

int k = gc2.get(Calendar.YEAR);

int l = gc2.get(Calendar.MONTH);

int m = gc2.get(Calendar.DATE);

dann kommt als Ergebnis:

k = 2007

l = 0

m = 18.

k und l stimmen nicht. Und weiss auch nicht, wie ich es richtig machen soll.

Was muss ich machen, dass das richtig funktioniert?

Vielen Dank im Voraus.

Tschau

Schau Dir mal die API-Dok zu GregorianCalendar und dem Konstruktor, den Du verwendest, an. Der Monat ist 0-based, 12 ist also ein falscher Wert und wird IMHO als Monat 0 des nächsten Jahres "optimiert".

Peter

Hallo Brain,

das habe ich inzwischen hinbekommen.

Du hast recht: erst API checken, dannach ins Forum.

Danke.

Tschüss

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.