Autore Topic: come si tuilizza il Timestamp ?  (Letto 4624 volte)

Offline DarkPhoinix

  • Utente junior
  • **
  • Post: 133
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC HD2 & Samsung Galaxy SII
  • Sistema operativo:
    LNX
come si tuilizza il Timestamp ?
« il: 27 Giugno 2011, 13:08:04 CEST »
0
Salve volevo sapere se qualcuno ha tempo per spiegarmi un po il timestamp in java.
usando :
Codice (Java): [Seleziona]
System.currentTimeMillis() ottengo un risultato simile: 1307985662405
io mi domando, è possibile salvare solo giorno, mese,anno(cosi da usare meno memoria )? è possibile estrapolare solo giorno,mese,anno?
Questi valori vanno inseriti e richiamati da SQLite di android.
 
« Ultima modifica: 27 Giugno 2011, 13:10:19 CEST da DarkPhoinix »

Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 757
  • Respect: +202
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Galaxy Nexus - Nexus One - Wildfire - Magic
  • Play Store ID:
    egsolutions.ch
  • Sistema operativo:
    Ubuntu 12.04, Windows 7
Re:come si tuilizza il Timestamp ?
« Risposta #1 il: 27 Giugno 2011, 14:03:48 CEST »
+1
1.istanzi un oggetto Date con  il costruttore di Date che prende in pasto il timestamp
2.istanzi un oggetto Calendar (o GregorianCalendar) tramite Calendar.getInstance()
3.chiami il metodo setTime sull'istanza creata di calendar
4.chiami il metodo get sull'istanza di creata calendar, e come parametro gli passi una costante della classe Calendar che rappresenta la parte della data che vuoi ottenere

Offline DarkPhoinix

  • Utente junior
  • **
  • Post: 133
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC HD2 & Samsung Galaxy SII
  • Sistema operativo:
    LNX
Re:come si tuilizza il Timestamp ?
« Risposta #2 il: 27 Giugno 2011, 14:06:10 CEST »
0
1.istanzi un oggetto Date con  il costruttore di Date che prende in pasto il timestamp
2.istanzi un oggetto Calendar (o GregorianCalendar) tramite Calendar.getInstance()
3.chiami il metodo setTime sull'istanza creata di calendar
4.chiami il metodo get sull'istanza di creata calendar, e come parametro gli passi una costante della classe Calendar che rappresenta la parte della data che vuoi ottenere

Ma cosi non usi System.currentTimeMillis()?

Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 757
  • Respect: +202
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Galaxy Nexus - Nexus One - Wildfire - Magic
  • Play Store ID:
    egsolutions.ch
  • Sistema operativo:
    Ubuntu 12.04, Windows 7
Re:come si tuilizza il Timestamp ?
« Risposta #3 il: 27 Giugno 2011, 14:12:03 CEST »
+1
Codice (Java): [Seleziona]
Date now=new Date(System.currentTimeMillis());
oppure puoi anche non usare Date e System.currentTimeMillis();

Codice (Java): [Seleziona]
Calendar now = Calendar.getInstance();
int year = now.get(Calendar.YEAR);
int month = now.get(Calendar.MONTH);
int day = now.get(Calendar.DAY_OF_MONTH);
int hour = now.get(Calendar.HOUR_OF_DAY);
int minute = now.get(Calendar.MINUTE);
int second = now.get(Calendar.SECOND);
int millis = now.get(Calendar.MILLISECOND);

Calendar | Android Developers

Offline DarkPhoinix

  • Utente junior
  • **
  • Post: 133
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC HD2 & Samsung Galaxy SII
  • Sistema operativo:
    LNX
Re:come si tuilizza il Timestamp ?
« Risposta #4 il: 27 Giugno 2011, 14:26:58 CEST »
0
Codice (Java): [Seleziona]
Date now=new Date(System.currentTimeMillis());
oppure puoi anche non usare Date e System.currentTimeMillis();

Codice (Java): [Seleziona]
Calendar now = Calendar.getInstance();
int year = now.get(Calendar.YEAR);
int month = now.get(Calendar.MONTH);
int day = now.get(Calendar.DAY_OF_MONTH);
int hour = now.get(Calendar.HOUR_OF_DAY);
int minute = now.get(Calendar.MINUTE);
int second = now.get(Calendar.SECOND);
int millis = now.get(Calendar.MILLISECOND);

Calendar | Android Developers

il mio problema è che mi serve salvare la data con un valore int nel database con System.currentTimeMillis e cosi ottengo 1307985662405 molto comodo per la ricerca se non fosse che dentro sono contenuti pure ora minuti ecc... quello che sto facendo ora e salvare la data annomesegiorno 20101131 però ho problemi per estrapolare la data formatta cosi 31/11/2011.
il comando GregorianCalendar gc = new GregorianCalendar lo uso già.... mi serve sapere se con System.currentTimeMillis è possibile fare quello che ho chiesto nel primo topic.
« Ultima modifica: 27 Giugno 2011, 15:57:29 CEST da DarkPhoinix »

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:come si tuilizza il Timestamp ?
« Risposta #5 il: 27 Giugno 2011, 14:44:57 CEST »
0
mi serve sapere se con System.currentTimeMillis è possibile fare quello che ho chiesto nel primo topic.

Qlimax ti ha già risposto.

Codice (Java): [Seleziona]
Date now=new Date(System.currentTimeMillis());

Una volta che hai l'oggetto Date puoi tirare fuori giorno, mese e anno.

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:come si tuilizza il Timestamp ?
« Risposta #6 il: 27 Giugno 2011, 14:49:47 CEST »
+1
quello che sto facendo ora e salvare la data annomesegiorno 20101131 però ho problemi per estrapolare la data formatta cosi 31/11/2011.

In generale per formattare una data, c'è il comodissimo SimpleDateFormat :

Codice (Java): [Seleziona]
// Create Date object.
Date date = new Date();

//Specify the desired date format
String DATE_FORMAT = "MM/dd/yyyy";

//Create object of SimpleDateFormat and pass the desired date format.
SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);

//  Use format method of SimpleDateFormat class to format the date.
System.out.println("Today is " + sdf.format(date) );
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline DarkPhoinix

  • Utente junior
  • **
  • Post: 133
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC HD2 & Samsung Galaxy SII
  • Sistema operativo:
    LNX
Re:come si tuilizza il Timestamp ?
« Risposta #7 il: 27 Giugno 2011, 15:04:29 CEST »
0
In generale per formattare una data, c'è il comodissimo SimpleDateFormat :

Codice (Java): [Seleziona]
// Create Date object.
Date date = new Date();

//Specify the desired date format
String DATE_FORMAT = "MM/dd/yyyy";

//Create object of SimpleDateFormat and pass the desired date format.
SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);

//  Use format method of SimpleDateFormat class to format the date.
System.out.println("Today is " + sdf.format(date) );

ecco è possibile fare questo con timestamp ,cioè da 1307985662405  ottenere dd/mm/yyyy e viceversa? oppure con GregorianCalendar() è possibile ottenere un intero tipo 20101131 per poterlo salvare su un database?

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:come si tuilizza il Timestamp ?
« Risposta #8 il: 27 Giugno 2011, 15:24:34 CEST »
0
ecco è possibile fare questo con timestamp ,cioè da 1307985662405  ottenere dd/mm/yyyy e viceversa?

Abbi pazienza, ma la vedi la risposta di Qlimax?
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline DarkPhoinix

  • Utente junior
  • **
  • Post: 133
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC HD2 & Samsung Galaxy SII
  • Sistema operativo:
    LNX
Re:come si tuilizza il Timestamp ?
« Risposta #9 il: 27 Giugno 2011, 16:01:11 CEST »
0
Abbi pazienza, ma la vedi la risposta di Qlimax?

Codice (Java): [Seleziona]
Date now=new Date(System.currentTimeMillis());

int year = now.get(Calendar.YEAR);
int month = now.get(Calendar.MONTH);
int day = now.get(Calendar.DAY_OF_MONTH);
int hour = now.get(Calendar.HOUR_OF_DAY);
int minute = now.get(Calendar.MINUTE);
int second = now.get(Calendar.SECOND);
int millis = now.get(Calendar.MILLISECOND);

credo di averla capita solo ora..... è corretto quello che ho scritto?


Offline DarkPhoinix

  • Utente junior
  • **
  • Post: 133
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC HD2 & Samsung Galaxy SII
  • Sistema operativo:
    LNX
Re:come si tuilizza il Timestamp ?
« Risposta #10 il: 27 Giugno 2011, 16:45:27 CEST »
0
non ho capito nulla.......

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:come si tuilizza il Timestamp ?
« Risposta #11 il: 27 Giugno 2011, 16:55:57 CEST »
0
non ho capito nulla.......

Ti è stato suggerito di utilizzare la classe date quindi la cosa naturale è andare a consultare la documentazione per scoprire che metodi offre questa classe. L'hai fatto? Cosa non ti è chiaro?

Offline DarkPhoinix

  • Utente junior
  • **
  • Post: 133
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC HD2 & Samsung Galaxy SII
  • Sistema operativo:
    LNX
Re:come si tuilizza il Timestamp ?
« Risposta #12 il: 27 Giugno 2011, 17:08:47 CEST »
0
Ti è stato suggerito di utilizzare la classe date quindi la cosa naturale è andare a consultare la documentazione per scoprire che metodi offre questa classe. L'hai fatto? Cosa non ti è chiaro?

Mi serve un esempio pratico non mi è chiaro nulla! 
le mie domande sono:

1° "1307985662405"  da questo valore posso ricavare solo: giorno mese anno
2° posso usare System.currentTimeMillis() e salvare solo giorno mese anno?

io uso già:

 
Codice (Java): [Seleziona]
 GregorianCalendar gc = new GregorianCalendar();
  int anno = gc.get(Calendar.YEAR);
  int mese = gc.get(Calendar.MONTH);
  int giorno = gc.get(Calendar.DATE);
  int ore = gc.get(Calendar.HOUR_OF_DAY);
  int min = gc.get(Calendar.MINUTE);
  int sec = gc.get(Calendar.SECOND);

però a me servirebbe salvare la data con un unico valore intero in un database  e portelo richiamare e formattare  gg/mm/yyyy(vorrei evitare di usare il timestamp di sqlite)

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:come si tuilizza il Timestamp ?
« Risposta #13 il: 27 Giugno 2011, 17:18:57 CEST »
0
1)Si puoi tramite la classe Date. Guardati la documentazione per scoprire i metodi.
2)Ti salvi il timestamp nel db e quando lo estrai lo formatti con l'esempio di bradipao.

Offline DarkPhoinix

  • Utente junior
  • **
  • Post: 133
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC HD2 & Samsung Galaxy SII
  • Sistema operativo:
    LNX
Re:come si tuilizza il Timestamp ?
« Risposta #14 il: 27 Giugno 2011, 17:48:19 CEST »
0
Codice (Java): [Seleziona]
        // Create Date object.
         Date date = new Date(1307985662405L);

         //Specify the desired date format
         String DATE_FORMAT = "MM/dd/yyyy";

         //Create object of SimpleDateFormat and pass the desired date format.
         SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);

         //  Use format method of SimpleDateFormat class to format the date.
         System.out.println("Today is " + sdf.format(date) );


ok uno va però mi rimane l'inverso, cioè, mettiamo che io deva fare una ricerca nel mio db tra 1/1/1990 1/1/2011 devo passare alla query i valori in System.currentTimeMillis() come faccio?
Scusate ancora per il disturbo!