Probleme mit GregorianCalendar-Objekt (war: ich vollidiot)



  • hallo!

    ich bekomme aus einer datenbank datum-werte. nehme ich mit substring() auseinander und setze die werte in mein GregorianCalendar-Objekt.

    Das Problem ist nur, dass die Tage willkührlich richtig oder falsch gesetzt werden :o

    hier mein code:

    [java]
    GregorianCalendar oEntry_Anfang = new GregorianCalendar();
    String sDate_Anfang = oResultSet.getString("entry_anfang");
    oEntry_Anfang.set(Calendar.YEAR, new Integer(sDate_Anfang.substring(0,4)).intValue());
    oEntry_Anfang.set(Calendar.MONTH, (new Integer(sDate_Anfang.substring(5,7)).intValue())-1);
    oEntry_Anfang.set(Calendar.DAY_OF_MONTH, new Integer(sDate_Anfang.substring(8,10)).intValue()); [/code]

    und hier die ausgabe:

    Date String: 2003-04-04 12:00:00 - Day Substring:04 
    Date GC: 2003-3-5 
    
    Date String: 2003-04-12 10:00:00 - Day Substring:12 
    Date GC: 2003-3-12 
    
    Date String: 2003-04-12 11:00:00 - Day Substring:12 
    Date GC: 2003-3-12 
    
    Date String: 2003-04-13 13:00:00 - Day Substring:13 
    Date GC: 2003-3-14 
    
    Date String: 2003-04-14 14:00:00 - Day Substring:14 
    Date GC: 2003-3-15 
    
    Date String: 2003-04-15 15:00:00 - Day Substring:15 
    Date GC: 2003-3-16 
    
    Date String: 2003-04-16 16:00:00 - Day Substring:16 
    Date GC: 2003-3-17
    

    wär echt klasse wenn sich jemand äussern könnte - ich bin mit meinem latein am ende 😮 😮 😮

    vielen dank!

    Edit: Bitte sprechende Titel vergeben - Danke!

    [ Dieser Beitrag wurde am 13.03.2003 um 15:04 Uhr von CengizS editiert. ]



  • public static void main(String args[]) 
        {
            String[] dates = {"2003-04-12 11:00:00","2003-04-13 11:00:00","2003-04-14 11:00:00"};
            GregorianCalendar oEntry_Anfang = new GregorianCalendar(); 
            for(int a = 0; a < dates.length; a++) {
            String sDate_Anfang = dates[a];
            oEntry_Anfang.set(Calendar.YEAR, new Integer(sDate_Anfang.substring(0,4)).intValue()); 
            oEntry_Anfang.set(Calendar.MONTH, (new Integer(sDate_Anfang.substring(5,7)).intValue())-1); 
            oEntry_Anfang.set(Calendar.DAY_OF_MONTH, new Integer(sDate_Anfang.substring(8,10)).intValue());  
            SimpleDateFormat format = new SimpleDateFormat();
            System.out.println(format.format(oEntry_Anfang.getTime()));
            }
       }
    

    Ausgabe:
    12.04.03 14:14
    13.04.03 14:14
    14.04.03 14:14

    Sieht korrekt aus bei mir. Tut mir leid kann nicht sagen wo bei dir der
    Fuchs drinne ist



  • Hmmmm 14:14 sieht nicht sehr korrekt aus. Ihr solltest aus ResultSet die getDate(...)-Methode benutzen. Damit bekommt ihr ein java.sql.Date welches sich einfacher in java.util.Date umwandeln lässt.



  • Original erstellt von CengizS:
    Hmmmm 14:14 sieht nicht sehr korrekt aus. Ihr solltest aus ResultSet die getDate(...)-Methode benutzen. Damit bekommt ihr ein java.sql.Date welches sich einfacher in java.util.Date umwandeln lässt.

    Ihr? 😉

    ich nutze bevorzug unix timestamps die brauch ich nur mit
    GregorianCalendar.setTimeInMillis(long stamp);
    setzen ohne gross zu konvertieren 🙂

    Trotzdem ist der oben genannte fehler: suspekt



  • Aeeh ... doytsche shiprahe shvere shiprahe ... "Ihr solltet ..." hätte das heissen sollen 🙂 Ein Timestamp wäre natürlich auch die bessere Alternative.

    [ Dieser Beitrag wurde am 13.03.2003 um 15:02 Uhr von CengizS editiert. ]


Anmelden zum Antworten