Ich habe eine Anwendung, die Datum in eine Datenbank einfügt. Als ich die Einträge mit Eclipse-Neon im Datenquellen-Explorer geöffnet habe, habe ich festgestellt, dass die Jahre im Datum den Wert haben (Beispiel: 3916-10-05). Zu wissen, dass die Variablen vom Typ java.util.date sind und dass die Spalte in der Datenbank vom Typ DATE ist.Java.util.date Jahr größer als dreitausend
Antwort
Ich denke, dieses Beispiel wird Ihnen helfen, zu verstehen, was Ihre eigentliche Problem ist (try it):
import java.util.Date;
import java.io.*;
class Ideone
{
public static void main (String[] args) throws java.lang.Exception
{
Date date = new Date(1475625600000L); //2016-10-05
int year = date.getYear();
System.out.println("Year from epoch: " + date.getYear());
date.setYear(2016);
System.out.println("Year from setYear() " + date.getYear());
System.out.println("Full date: " + date.toString());
}
}
Dieser Druck wird
Year from epoch: 116
Year from setYear() 2016
Full date: Thu Oct 05 00:00:00 GMT 3916
java.util.Date ist ein bisschen komisch, wenn es darum geht, Umgang mit Jahren in Daten. Es verwendet einen Offset von 1900, wenn Sie Jahre festlegen und subtrahieren, wenn Sie Jahre von Daten erhalten.
Vom documentation:
getYear()
Deprecated.
As of JDK version 1.1, replaced by Calendar.get(Calendar.YEAR) - 1900.
setYear(int year)
Deprecated.
As of JDK version 1.1, replaced by Calendar.set(Calendar.YEAR, year + 1900).
Wenn Sie versuchen, ein Jahr als 4-stellige Form einstellen, erhalten Sie neuesten Stand zu bringen, nachdem 3900.
Sehr wahrscheinlich Hypothese, stimme ich zu. Die wirkliche und gute Lösung wäre, die veralteten Klassen "Date" und "Calendar" komplett zu verwerfen und stattdessen die modernen 'java.time' API-Klassen zu verwenden, wie zum Beispiel' LocalDate'. Mit einem ausreichend neuen JDBC-Treiber kann man diese direkt in die Datenbank einfügen. –
- 1. erhalten Jahr von java.util.Date
- 2. JQuery Datepicker Set Ende Jahr größer als Start Jahr
- 3. GWT java.util.Date Serialisierungsfehler
- 4. Awk Zeitstempel größer als
- 5. Größer als weniger, Python
- 6. PHP Datum Zeit größer als heute
- 7. Serialisierung java.util.Date
- 8. Marshalling java.util.Date mit SprayJson
- 9. Regulärer Ausdruck größer als und kleiner als
- 10. Zeichen größer als/weniger als // Javascript
- 11. Lucene.Net größer als/weniger als TermRangeQuery?
- 12. ImageView größer als der Bildschirm als Hintergrund
- 13. ZF2 Größer als/Weniger als Abfrage
- 14. Jahr in GUI nicht richtig Jahr
- 15. Format Datum als Jahr/Quartal
- 16. Jahr als Float zu Datetime64
- 17. Ist alles größer als Keines?
- 18. Bild größer als Hintergrundfarbe machen
- 19. Hintergrund größer als sein Container
- 20. Cassandra größer als ‚>‘ Ausgabe
- 21. MongoDB größer ist als Abfrage
- 22. TabPage ist größer als TabControl
- 23. Ist 000,000,000.00 größer als Null?
- 24. Größer als inputText Javascript Validierer
- 25. Fortran Binärausgang größer als erwartet
- 26. Java Integer Vergleich: größer als
- 27. Wählen Sie größer als ORACLE
- 28. imageView ist größer als parrent
- 29. PIXI Container größer als Bühne?
- 30. Android ListView.getChildCount() größer als getCount()
Können Sie den Code teilen, die die Java Daten auffüllt? –
Es ist wahrscheinlich das gleiche Problem wie in [diese Frage: java.util.Date und getYear()] (https://stackoverflow.com/questions/9243578/java-util-date-and-getyear), nur von der gegenüberliegende Seite. –