Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    11

    Passare da striga a date

    Buongiorno, sto implementando un client imap che tra le tante cose mi restituisce una data dell'email in questo formato: Wed, 6 Oct 2010 18:47:13 +0200 come stringa. Come posso convertirla in date gg/mm/yyyy? mi serve per poi poter fare dei confronti sulle date ed ordinare i messaggi.
    Grazie

  2. #2
    Con il SimpleDateFormat puoi fare tutte le conversioni che vuoi da Date a String e viceversa e con qualsiasi formato.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    11
    Si è quello che sto provando ad utilizzare ma mi restituisce null!
    Il codice è questo:

    SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
    da[0]=sdf.parse(data[0]); //da[0] Date e data[0] String
    System.out.println(da[0]); //stampa null

    dove sto sbagliando?

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Beh, è chiaro che stai sbagliando il formato.

    Se hai delle stringhe tipo "Wed, 6 Oct 2010 18:47:13 +0200", mi pare evidente che esse non siano nel formato "dd-MM-yyyy".

    "dd-MM-yyyy" --> "06-10-2010"

    Devi usare un formatter che sia applicabile alla stringa che hai:

    codice:
    SimpleDateFormat sdf = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z", Locale.ENGLISH);
    La documentazione ti è già stata linkata... all'inizio c'è una parte dettagliata di spiegazione con tutti i vari simboli dei formati... bastava leggerla...


    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

  5. #5
    Prova una cosa del genere:

    codice:
    public String testDate(String date) {
    	String newDate = null;
    	try {
    		SimpleDateFormat sdf = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z", Locale.ENGLISH);
    		Date d = sdf.parse(date);
    		sdf = new SimpleDateFormat("dd/MM/yyyy");
    		newDate = sdf.format(d);
    	} catch (ParseException e) {
    		e.printStackTrace();
    	}
    	return newDate;
    }
    al metodo sopra puoi passare date di tipo stringa nel formato che hai nell'email (ES: Wed, 6 Oct 2010 18:47:13 +0200)
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    11
    Avevo capito che SimpleDateFormat("dd/MM/yyyy") rappresentasse il formato in uscita della conversione non quello in ingresso! Grazie mille per l'aiuto!

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.