Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    106

    java - da date a string

    Ciao ragazzi,

    ho un campo DATE mysql in cui memorizzo una data. Vorrei renderlo String. Ho provato con:

    ResultSet rs;
    stringa = rs.getDate(indice colonna);

    ma ovviamento non va. Non va neppure con:

    stringa = rs.getDate(indice colonna).toString();

    Qualcuno è gentilmente in grado di dirmi come posso fare?

    Ciao e grazie.

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: java - da date a string

    Originariamente inviato da iako
    ResultSet rs;
    stringa = rs.getDate(indice colonna);
    No, questo getDate ritorna un java.sql.Date (che è-un java.util.Date), non un String.

    Originariamente inviato da iako
    Non va neppure con:

    stringa = rs.getDate(indice colonna).toString();
    Questo tecnicamente è corretto, ma il toString() di formatta la stringa con un formato fisso yyyy-mm-dd. E deduco non è quello che vuoi.

    Originariamente inviato da iako
    Qualcuno è gentilmente in grado di dirmi come posso fare?
    Formato della stringa che vuoi ottenere??? Usa un DateFormat/SimpleDateFormat (cerca sul forum).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Senti non sò se può aiutarti, ma io ho creato una classe per gestire le date, sicuramente non è la soluzione migliore, ma potrebbe servirti

    import java.util.GregorianCalendar;

    public class MyData {
    private String giorno;
    private String mese;
    private String anno;


    public MyData (String data)
    {
    try
    {
    if(data.charAt(1)=='-' && data.charAt(3)=='-')
    {
    giorno=data.substring(0,1);
    mese=data.substring(2, 3);
    anno=data.substring(4, 8);
    }
    else if(data.charAt(1)=='-' && data.charAt(4)=='-')
    {
    giorno=data.substring(0,1);
    mese=data.substring(2, 4);
    anno=data.substring(5, 9);
    }
    else if(data.charAt(2)=='-' && data.charAt(4)=='-')
    {
    giorno=data.substring(0,2);
    mese=data.substring(3, 4);
    anno=data.substring(5, 9);
    }
    else if(data.charAt(2)=='-' && data.charAt(5)=='-')
    {
    giorno=data.substring(0,2);
    mese=data.substring(3, 5);
    anno=data.substring(6, 10);
    }
    else if(data.length()==10)
    {

    giorno=data.substring(8,10);
    mese=data.substring(5, 7);
    anno=data.substring(0, 4);
    }
    else if(data.length()==9 && data.charAt(6)=='-')
    {
    giorno=data.substring(7,9);
    mese=data.substring(5, 6);
    anno=data.substring(0, 4);
    }
    else if(data.length()==9 && data.charAt(7)=='-')
    {
    giorno=data.substring(8,9);
    mese=data.substring(5, 7);
    anno=data.substring(0, 4);
    }
    else if(data.length()==8)
    {
    giorno=data.substring(7,8);
    mese=data.substring(5, 6);
    anno=data.substring(0, 4);
    }


    }catch(StringIndexOutOfBoundsException e)
    {
    giorno="0";
    mese="0";
    anno="0";

    }

    }

    public MyData (String g,String m, String a)
    {
    giorno=g;
    mese=m;
    anno=a;
    }


    public MyData (int g,int m, int a)
    {
    giorno=""+g;
    mese=""+m;
    anno=""+a;

    }


    public GregorianCalendar getDataGG_MM_AAAA()
    {
    GregorianCalendar data = new GregorianCalendar(getIntGiorno(),getIntMese(),getI ntAnno());
    return data;

    }

    public String getDataStrGG_MM_AAAA(String separatore)
    {
    return getGiorno()+separatore+getMese()+separatore+getAnn o();
    }


    public boolean before(MyData datapassata)
    {

    GregorianCalendar data1 =new GregorianCalendar(getIntAnno(),getIntMese(),getInt Giorno());
    GregorianCalendar data2= new GregorianCalendar(datapassata.getIntAnno(),datapas sata.getIntMese(),datapassata.getIntGiorno());
    return !data2.before(data1);
    }

    public boolean after(MyData datapassata)
    {
    GregorianCalendar data1 =new GregorianCalendar(getIntAnno(),getIntMese(),getInt Giorno());
    GregorianCalendar data2= new GregorianCalendar(datapassata.getIntAnno(),datapas sata.getIntMese(),datapassata.getIntGiorno());
    return !data2.after(data1);
    }
    public String getSQLData ()
    {

    return getAnno()+"-"+getMese()+"-"+ getGiorno();
    }




    public String getGiorno() {
    return giorno;
    }


    public String getMese() {
    return mese;
    }


    public String getAnno() {
    return anno;
    }

    public int getIntGiorno() {
    return Integer.parseInt(giorno);
    }


    public int getIntMese() {
    return Integer.parseInt(mese);
    }


    public int getIntAnno() {
    return Integer.parseInt(anno);
    }



    public void setGiorno(String giorno) {
    this.giorno = giorno;
    }


    public void setMese(String mese) {
    this.mese = mese;
    }


    public void setAnno(String anno) {
    this.anno = anno;
    }
    Agos

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    106
    Ciao ragazzi e grazie per aver risposto. Ho risolto ( o credo di aver risolto) in questo modo:

    SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
    String f = formatter.format(rs.getDate(columnIndex));

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    E questa discussione non l'hai aperta per lo stesso problema? :master:


    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

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.