![]() |
|
|
Themen-Optionen |
|
|
Nach oben #1 |
|
Benutzer
Registriert seit: 13.01.2006
Ort: Hannover
Beiträge: 48
|
Ich wollte in einer SQl Tabelle (mysql) ein feld mit dem Wert timestamp oer date haben, muss ich noch sehn was besser ist, aber das selbe Prinzip denk ich ma.
So nun wird autoamtisch das Datum in folgender Form gespeichert: 2006-03-02 16:44 Nun bin ich auf der Suche nach einer Klasse die mir Tag/Monat/Jahr/Stunde/Sekunde ordentlich ausließt. Ich hab es einmal mit dem Objekt Timestamp versucht, doch der gibt mir bei diesem aufruf das jahr 106 aus, obwohl es ja 2006 sein müsste Oo Code:
timestamp time = erg.getTimestamp("datum"); // Datum aus der Datenabank
System.out.println(time.getYear());
|
|
|
|
|
|
Nach oben #5 |
|
Erfahrener Benutzer
Registriert seit: 27.02.2006
Beiträge: 146
|
Hallo,
ich gehe mal davon aus, dass Du das Timestamp-Feld einfach mit dem Jahr 106 gefüllt hast. Dann stimmt es auch mit der Ausgabe Prüf doch mal, wie Du das Timestamp Feld setzt. Bzw. mit welcher Methode. Alternativ kannst Du gerne mit dem Client oder einen php<db>admin reinschauen ... gruß, jumper, the II. |
|
|
|
|
|
Nach oben #6 |
|
Benutzer
Registriert seit: 13.01.2006
Ort: Hannover
Beiträge: 48
|
Ich muss mal gestehen, da ich zufau bin mysql per Konsole zu steuern hab ich nen php server für phpMyAdmin drauf, ist einfach nen nettes tool.
In der Datenbank steht korrekt 2006-03-02 Die eingabe erfolgt automatisch wenn ich in phpMyAdmin nen neuen Beitrag erstelle. |
|
|
|
|
|
Nach oben #7 |
|
Erfahrener Benutzer
Registriert seit: 27.02.2006
Beiträge: 146
|
getYear
public int getYear() Deprecated. As of JDK version 1.1, replaced by Calendar.get(Calendar.YEAR) - 1900. Returns a value that is the result of subtracting 1900 from the year that contains or begins with the instant in time represented by this Date object, as interpreted in the local time zone. Returns: the year represented by this date, minus 1900. See Also: Calendar |
|
|
|
|
|
Nach oben #9 |
|
Benutzer
Registriert seit: 13.01.2006
Ort: Hannover
Beiträge: 48
|
Super das Jahr geht nu wenn ich 1900 druff rechne, aber nu seh ich Tag geht ja auch nicht ^^
Und zwar bekomm ich diese Ausgabe 4.3.2006 obwohl in der Datenbank 2006-03-02 steht da benutz ich jetzt getDay. Irgendwie mag ich diese Datumsgeschichte net edit: Davon mal abgesehn, in der Doku steht bei vielen Funktionen " Verworfen in Version 1.1." sollte man vieleicht etwas anderes verwenden? Geändert von js-mueller (06.03.2006 um 15:37 Uhr). |
|
|
|
|
|
Nach oben #10 |
|
Erfahrener Benutzer
Registriert seit: 27.02.2006
Beiträge: 146
|
Hallo,
Vielleicht geht es, wenn Du statt des timestamps die Infos aus Calendar liest: Code:
import java.util.Calendar; Calendar cal = Calendar.getInstance(); cal.setTime( timestamp); cal.get( Calendar.YEAR); cal.get( Calendar.MONTH); cal.get( Calendar.DAY_OF_MONTH); Gruß, Jumper, the II. |
|
|
|
|
|
Nach oben #12 | |
|
Benutzer
Registriert seit: 15.11.2005
Beiträge: 75
|
Zitat:
Du braucht hier Date#getDate(); das liefert - wie Calendar.get( DAY_OF_WEEK) - das Tagesdatum zwischen 1 und 31 zurück @jumper: JDK 1.1 gibt es zwar schon lange, aber die APIs funktionieren trotzdem noch. |
|
|
|
|
|
|
Nach oben #13 |
|
Erfahrener Benutzer
Registriert seit: 27.02.2006
Beiträge: 146
|
Hallo Murray,
das Problem ist, das Date#getDay mit der Version 1.0 gekommen ist und schon unter der Version 1.1 nicht mehr evrwendet werden sollte. Offensichtlich liegt in dieser Funktion ein netter (Jahr-2000?)-Bug bei der Berechnung des Monatstags vor, daher die abweichende Angabe In sofern ist diese Funktion in klassisches Beispiel, dass man das Verwenden von veralteten Funktionen wirklich unterlassen sollte Gruß, Jumper, the II. |
|
|
|
|
|
Nach oben #14 |
|
Erfahrener Benutzer
Registriert seit: 27.02.2006
Beiträge: 146
|
So, jetzt können wir den Thread zumachen *kugel*
Zusammenfassung des Problems .... Wir alle haben nicht in die API-Beschreibbung geschaut .... Es ist kein wirkliches Problem. Der Ansatz, die Calender-Klasse zu verwenden ist richtig und m.E. langfrist sicherer. Zu Date und der Methode getDay(). Diese Methode gibt den Wochentag aus. Und der ist immer etwas anderes als der Monatstag. Letzteres kann mit der Methode getDate() ausgelesen werden. Im übrigen nutzt Date intern Calender, um die alten Funktionen zu realisieren ... Also Asche auf mein Haupt Gruß, Jumper, the II. |
|
|
|
|
|
Nach oben #15 | ||
|
Benutzer
Registriert seit: 15.11.2005
Beiträge: 75
|
Zitat:
Der Grund, warum die Datumsfunktionen mit dem JDK 1.1 auf eine neue Basis gestellt wurden, war m.W. eher die Notwendigkeit der Internationalisierung; mit dem Calendar hat man hier ein deutlich mächtigeres Werkzeug zur Verfügung. Die erweiterte Funktionalität erkauft man sich aber leider mit Performance-Nachteilen; allein die Instanziierung eines Calendars ist schon eine ziemlich "teuere" Operation. Ich behaupte daher, dass es durchaus Situationen geben kann, in denen man besser java.util.Date verwenden sollten Zitat:
Gruß, Murray |
||
|
|
|
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Klasse in Klasse verwenden? | goelliboy | PHP-Programmierung | 12 | 07.09.2007 11:43 |
| Adapter für Zigarettenanzünder, Notebook als alternatives Radio im Auto verwenden | Ben | Gesuche | 19 | 08.08.2007 11:17 |
| Abkürzung des Wochentags in SQL, vgl. strftime in PHP | Ben | Datenbanken | 4 | 12.04.2007 16:51 |
| Zugriff auf Wert des vorhergenden Datensatzes in einer SQL Abfrage | Jay | Datenbanken | 5 | 17.07.2006 15:25 |
| Unicode vom SQL Server 2000 auslesen | argos | Datenbanken | 5 | 25.05.2005 22:20 |