Visualizzazione dei risultati da 1 a 8 su 8

Visualizzazione discussione

  1. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da gamerover98 Visualizza il messaggio
    Quando vado ad eseguire il programma invece di stamparmi 21 Giorni 00 Ore 00 Minuti 00 Secondi mi stampa 22 Giorni 01 Ore 00 Minuti 00 Secondi


    ​Sapete dirmi il perché? grazie
    Innanzitutto usare il long dei millisecondi con Date/DateFormat per rappresentare una "durata" non va granché bene, perché in realtà 1814400000 rappresenta l'istante del 22 Gennaio 1970 ore 00:00:00 in UTC.

    E poi c'è il fatto che i DateFormat per default usano il TimeZone corrente, quindi ti stampa l'ora "locale" (ecco il perché del +1 ora). Se anche mettessi prima di formattare:

    dateFormat.setTimeZone(TimeZone.getTimeZone("UTC") );

    in ogni caso ti stampa "22 Giorni" perché ti ripeto che NON lo tratta come una durata ma come una data. Ovvero sono passati 21 giorni esatti dal 1 Gennaio 1970 e quindi sei al 22 Gennaio 1970 00:00:00 esatte (sempre visto in UTC).
    Ultima modifica di andbin; 01-05-2016 a 14:23
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.