Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    15

    problemi date formato unix

    Ciao a tutti!
    Ho un problema dal quale non riesco proprio a venire a capo...

    devo confrontare la data corrente con la data in un campo di una tabella di un database. La data nel db è in formato unix.

    Una volta prelevato il valore nel db:
    1-provo ad ottenere la data corrente.
    Ho provato in due modi

    Calendar cal = Calendar.getInstance();
    String today = String.valueOf(cal.getTimeInMillis());

    e

    Date d=new Date();
    long a=d.getTime();

    Printando il valore che ottengo e poi facendo di nuovo la conversione mi accorgo che la data corrente mi restituisce una data che non a proprio niente a che fare con la data corrente.

    ESEMPIO:

    printando la variabile a e today (in riferimento al 15 dicembre 2006 ore 11 e qualche minuto) ho ottenuto la stessa cosa: 1166177232593
    se provo a fare la conversione la data che ottengo è invece: Thu, 07 Sep 38924 16:09:53 GMT.

    Ho notato che invece togliendo gli ultimi tre numeri "1166177232" e rifacendo la conversione ottengo la data corretta: Fri, 15 Dec 2006 10:07:12 GMT......

    Come posso ottenere la data corrente e corretta soprattutto in formato unix??

    Qualcuno può aiutarmi??

    Grazie, ciao ciao.

  2. #2
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    una data è di base un numero di millisecondi
    evidentemente sbagli a convertire da long a Date
    la data attuale si ottiene con System.currentTimeMillis()

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    15
    ho provato con System.currentTimeMillis()

    ho ottenuto: 1166179317906

    se provo a rifare la conversione(con un tool on line..) ottengo la seguente data:20/7/2339 .....

    non è proprio il giorno odierno....

    ????

  4. #4
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    stai cercando di convertirlo in una stringa ma non ne vedo la necessità
    se dovessi fare dei confronti, io userei java.util.Date
    Date d = new Date();
    Date altro = ...
    if (d.after(altro))
    ...
    se dovessi mostrare la data userei java.text.SimpleDateFormat per ottenere una stringa
    a ogni modo se spieghi cosa devi fare magari sarebbe più facile aiutarti

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    15
    allora ho una data in formato unix in un db.

    una volta recuperato questo campo devo confrontarlo con la data corrente. Se la data nel db è precedente faccio abc se è successiva faccio def.

    più chiaro ora?

    Non riesco a capire dove sbaglio!

    Grazie ancora!

  6. #6
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    dunque se il campo è di tipo date e lo recuperi con rs.getTimestamp(nome) è facile
    Date d = rs.getTimestamp(...);
    if (d.before(new Date())) {
    // abc
    } else {
    // def
    }

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    15
    purtroppo è un db già operativo, e il campo è un varchar(16)... neanche può essere modificato.

    la questione si complica purtroppo.

    Qualche idea??

  8. #8
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    puoi portarlo a Date
    String s = rs.getString(...);
    SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
    Date d = sdf.parse(s);
    devi impostare il formato, io ho messo uno con solo la data
    guarda http://java.sun.com/j2se/1.5.0/docs/...ateFormat.html per capire come funziona

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    15
    GRAZIE MILLE per la tua gentilezza. Ora provo.

    Ciao

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.