Avatar billede baitianlong Nybegynder
07. juni 2007 - 14:08 Der er 9 kommentarer og
1 løsning

Underligt dato-problem

Jeg har et underligt problem. Jeg bruger omtrent den samme kode som jeg har brugt saa mange gange foer, men naar jeg henter en dato fra min mySQL database og viser den paa en JSP side (toString()), er der kun M-d-y. Time og minut mangler. Hvis jeg skriver Datoen ud med toLocaleString() er klokken bare 12.00 paa alle datoerne. Det er vildt irriterende, og jeg fatter ikke hvad der sker.
Avatar billede mikkelbm Nybegynder
07. juni 2007 - 14:17 #1
Hvad er feltet i databasen sat til? Hvis jeg ikke husker helt forkert, så har MySql følgende formater:

Date
Time
DateTime

Og hvis du vil have både dato og tid på, så skal du bruge DateTime typen.
Avatar billede baitianlong Nybegynder
07. juni 2007 - 14:40 #2
Det er DATETIME. Jeg fatter ikke hvad der sker. Jeg lavede lige den mest simple test app med denne kode:

public static void main(String[] args) {
        try{
            Class.forName("com.mysql.jdbc.Driver");
            Connection con = DriverManager.getConnection("jdbc:mysql://localhost/apackapow", "root", "jesper");
            Statement stmt = con.createStatement();
            ResultSet rs = stmt.executeQuery("SELECT * FROM currentgamess456");
            while(rs.next()) {
                System.out.println(rs.getDate("gametime").toGMTString());
            }
        } catch (SQLException e) {
            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
        } catch (ClassNotFoundException e) {
            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
        }
    }

Og den gav mig dette print-out:

6 Jun 2007 16:00:00 GMT
6 Jun 2007 16:00:00 GMT
6 Jun 2007 16:00:00 GMT
6 Jun 2007 16:00:00 GMT
6 Jun 2007 16:00:00 GMT
6 Jun 2007 16:00:00 GMT
6 Jun 2007 16:00:00 GMT
6 Jun 2007 16:00:00 GMT
6 Jun 2007 16:00:00 GMT
6 Jun 2007 16:00:00 GMT
6 Jun 2007 16:00:00 GMT
6 Jun 2007 16:00:00 GMT
6 Jun 2007 16:00:00 GMT
6 Jun 2007 16:00:00 GMT
6 Jun 2007 16:00:00 GMT
6 Jun 2007 16:00:00 GMT

Her er et billede af Dataen fra SQL frontenden: www.legende.dk/data.JPG

Som det fremgaar er klokken ikke 16 :S
Avatar billede baitianlong Nybegynder
07. juni 2007 - 14:47 #3
Hmm, jeg har fundet ud af at hvis jeg skifter getDate ud med dette

System.out.println(rs.getObject("gametime").toString());

saa faar jeg dette resultat (som jo er rigtigt):

2007-06-07 14:45:00.0
2007-06-07 14:30:00.0
2007-06-07 21:00:00.0
2007-06-07 14:15:00.0
2007-06-07 20:45:00.0
2007-06-07 19:00:00.0
2007-06-07 19:00:00.0
2007-06-07 20:00:00.0
2007-06-07 14:30:00.0
2007-06-07 14:30:00.0
2007-06-07 14:30:00.0
2007-06-07 20:45:00.0
2007-06-07 15:00:00.0
2007-06-07 14:00:00.0
2007-06-07 14:30:00.0
2007-06-07 14:30:00.0


Det er da underligt at getDate ikke virker lige pludselig
Avatar billede arne_v Ekspert
07. juni 2007 - 15:07 #4
Du skal da bruge rs.getTimeStamp("gametime") !
Avatar billede arne_v Ekspert
07. juni 2007 - 15:12 #5
getDate() returnerer en java.sql.Date og bruges ved MySQL DATE
getTimeStamp() returnerer en java.sql.TimeStamp og bruges ved MySQL DATETIME
Avatar billede baitianlong Nybegynder
07. juni 2007 - 15:16 #6
Hej Arne.

getTimestamp virker ogsaa, og saa behoever ikke caste til Date hver gang :)

Jeg ved ikke hvad jeg skal goere med points'ne, men hvis i smider et svar, kan vi dele
Avatar billede mikkelbm Nybegynder
07. juni 2007 - 15:26 #7
Det er vist Arnes point...
Avatar billede baitianlong Nybegynder
07. juni 2007 - 15:31 #8
ja. Det synes jeg ogsaa
Avatar billede arne_v Ekspert
07. juni 2007 - 15:56 #9
et svar

PS: Hvis du undrer dig over kl. 16 saa skyldes det formentligt at du er i GMT+8
    tidszone (sommertid medregnet).
Avatar billede baitianlong Nybegynder
08. juni 2007 - 10:53 #10
Tjo, jeg havde godt nok undret mig over hvad alle de kinesere lavede i Hellerup ;) hehe
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester