Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    517

    Java: problema nel recuperare la data odierna

    Salve ragazzi ho un problema nel recuperare la data odierna con java, o meglio la riesco a recuperare il problema sorge quando devo andarla a passare nella query mi da errore di formato non compatibile perchè il formato che mi restituisce il getTime() di gregorian calendar è questo:

    Sep 30 16:21:42 CEST 2011
    lo recupero in questa maniera:
    codice:
    private GregorianCalendar data=new GregorianCalendar();
    
    
    Date data_odierna=data.getTime();
    mentre il formato accettato dal db è :
    2011-09-30
    c'è un metodo java che mi recupera il formato compatibile?

    grazie

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,480

    Moderazione

    Il linguaggio Java e le tecnologie ad esso correlate hanno una sezione dedicata.

    Sposto la discussione.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Ci sono 2 modi. Uno formalmente corretto, l'altro manuale.

    L'uso corretto consiste nell'usare PreparedStatement e passare come parametro un oggetto java.sql.Date. Quindi, in buona sostanza, non dovresti fare nulla se non passare l'oggetto.

    Il secondo consiste nell'usare un SimpleDateFormat per formattare la data in una stringa da usare con istruzioni SQL fisse.

    codice:
    Date dataOdierna = data.getTime();
    
    // Primo metodo
    PreparedStatement sql = conn.prepareStatement("INSERT INTO tabella VALUES(?)");
    sql.setDate(1, new java.sql.Date( dataOdierna.getTime() ));
    sql.executeUpdate();
    
    // Secondo metodo
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    String sql = "INSERT INTO tabella VALUES('" + sdf.format(dataOdierna) + "');";
    Statement stmt = conn.createStatement( sql );
    stmt.executeUpdate();
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    517
    grazie leleFT ho usato il secondo metodo perchè il primo mi dava dei problemi, comunque va bene cosi grazie ancora

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.