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

    [JAVA] Differenza fra date

    Buongiorno,

    ho questo problema.

    dovrei implementare un metodo che restituisca una String contenente alcune informazioni: nello specifico la differenza tra due date.

    Una data mi viene inviata nel metodo sotto forma di String, la parso per ottenere un oggetto di tipo GregorianCaledar.

    La seconda data corriponde all'actual timestamp mediante oggetto Timestamp (new Date ()).

    Eseguendo la differenza tra i 2 timestamp in millisecondi ottengo però una data a partire dal 1970.

    Se il risultato della diffeneza fosse 2 ore, se non sbaglio otterrei questa data:

    1 Gennaio 1970, 00:02:00.

    Come posso invece ottenere la differenza sotto forma di AA-MM-GG HH-MM-SS ???


    PS: potrei anche fare calcoli matematici a questo punto: se il risultato fosse:

    3 marzo 1971, 22:19:37

    il risultato sarebbe

    01-03-03 22:19:37 (1 anno, 3 mesi, 3 giorni, 22 ore, 19 minuti, 37 secondi)

    E' l'unico modo possibile???

  2. #2
    in genere il miglior modo per fare la differenza tra date è usare i milliesecondi.
    ottieni i millisec di entrambe le date, fai la differenza e trasformi il risultato nel formato data.

  3. #3
    Ok, grazie 1000, ho risolto il problema...

    Ora un'altro si pone innanzi a me...

    La data arriva nel seguente formato:

    yyyy-MM-ddTHH:mm:ss+0000

    che secondo le ricerche è lo standard ISO ????...

    Come faccio a ottenere un oggetto di tipo Date o GregorianCalendar in modo da poter ottenere i millisecondi di cui ho bisogno?

    Ho visto la classe SimpleDateFormatter ma ad ogni invocazione di metodo scappa un'eccezione...

    Come posso risolvere?

  4. #4
    E quale eccezione sarebbe?
    Al mio segnale... scatenate l'inferno!

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Originariamente inviato da R@ve M@ster
    E quale eccezione sarebbe?
    E con quale codice?

    PS: la classe si chiama SimpleDateFormat (del package java.text)


    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

  6. #6
    Scusate, sbagliavo io...

    Risolto con questo codice:


    codice:
    public static final long getTimeInMillis (String date){
    		SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
    		try {
    			Date d = f.parse(date);
    			return d.getTime();
    		} catch (ParseException e) {
    			return 0;
    		}
    	}

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.