Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [java.sql.*] Date Time e Timestamp con GMT

    Allora,
    mi sta per esplodere la testa, sto navigando ormai da ore e tra poco mi inizerà a venire il mal di mare a forza di navigare su internet.

    Io un problema BANALE. Ho due campi di una tabella mysql da popolare, i tipi sono rispettivamente date e datetime (in pratica è un java.sql.Timestamp).

    Per il campo Date ho tre variabili INT che sono rispettivamente l'anno, il mese e il giorno.
    Quando provo a creare un nuovo oggetto java.sql.Date per settare il campo, se inserisco l'anno 2010/1/1, mi vedo comparire nel database la data 2009-12-31. Primo problema.

    Il secondo campo, il timestamp, ci vorrei salvare dentro la data esatta del momento in cui creo la riga, ma in data GMT, e ovviamente non mi riesce perchè continua a salvarmi la data in localtime.


    Vado a prendermi una camomilla.
    Grazie in anticipo.
    ...

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    codice...
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    grazie!
    di codici ne ho provati diversi, ti metto l'ultima così guardi se ci puoi dare un occhio.
    Guarda, ci sto perdendo il carattere. E' incredibile che una cosa così scontata si sia trasformata in un rompimento di ***

    codice:
                anno = Integer.parseInt(request.getParam("anno"));
                mese = Integer.parseInt(request.getParam("mese"));
                giorno = Integer.parseInt(request.getParam("giorno"));
                nascita = new GregorianCalendar(anno, mese - 1, giorno - 1);
    [...]
    
    
    
                    stm.setTimestamp(5, new java.sql.Timestamp(new java.util.Date().getTime())); // in questa vorrei avere semplicemente il anno mese e giorno (ho provato anche con il costruttore semplice java.util.Date(anno,mese, giorno) ma non funziona
                    stm.setDate(6,new java.sql.Date(nascita.getTimeInMillis())); // in questa riga vorrei che mi aggiungesse l'ora corrente di GMT
    grazie in anticipo
    ...

  4. #4
    Non sono stato molto a indagare sul tuo codice, ma se setti nel modo seguente la nascita
    nascita = new GregorianCalendar(anno, mese - 1, giorno - 1);
    mese - 1 è corretto in quanto secondo le specifiche mese - 1 è nel tuo casa Gennaio (il mese inizia da 0 che equivale a gennaio), ma giorno - 1 imposta il giorno a quello del mese precedente; 1 Gennaio - 1 corrisponde al 31 Dic dell'anno precedente, quindi nell'esempio da te esposto sarebbe 2009-12-31.
    Secondo le specifiche:
    year - the value used to set the YEAR calendar field in the calendar.
    month - the value used to set the MONTH calendar field in the calendar. Month value is 0-based. e.g., 0 for January.
    dayOfMonth - the value used to set the DAY_OF_MONTH calendar field in the calendar.

    Prova a usare l'oggetto GregorianCalendar in abbinamento all'oggetto Calendar.

    Ciao.

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Per la seconda questione potresti risolvere con DateFormat e TimeZone... qualcosa del genere

    codice:
    DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    df.setTimeZone(TimeZone.getTimeZone("GMT"));
    java.util.Date currentLocalTime = new java.util.Date();
    String textTime = df.format(currentLocalTime);
    
    //...
    stm.setString(6, textTime);
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.