El problema parece ser con la zona horaria, no el valor en sí Date
. Así que en lugar de imprimir la fecha actual, usar algo como esto para imprimir la zona horaria actual:
import java.util.TimeZone ;
public class Test {
public static void main(String[] args) throws Exception {
TimeZone zone = TimeZone.getDefault();
System.out.println(zone.getDisplayName());
System.out.println(zone.getID());
}
}
Por ejemplo, para mí que las impresiones:
Greenwich Mean Time
Europe/London
Una vez que conozca más detalles sobre lo Java piensa que su zona horaria predeterminada es, puede empezar a buscar por qué piensa eso. ¿Hay algo sobre cómo está ejecutando Java que no es estándar? ¿Alguna variable de entorno que se parezca sospechosamente a la zona horaria incorrecta?
Usted también puede imprimir las siguientes propiedades del sistema, que se utilizan para determinar la zona horaria:
user.timezone
user.country
java.home
(imprimirlos antes conseguir la zona horaria predeterminada - user.timezone
se establece como parte de ir a buscar que, si no se ha establecido antes.)
Extraño. Ejecuto este programa y me da Acre Time America/Rio_Branco. Donde como mi hora de Windows es UTC + 5. Debería ver por qué piensa esto. –
Además, 2 personas están equivocadas y tenemos la versión 1.6.13. Donde como un chico que tiene 1.6.26 haciéndolo correcto. –
Estoy obteniendo los siguientes valores. Santa vaca Mis configuraciones de Windows son ignoradas. user.timezone = America/Rio_Branco user.country = US java.home = C: \ Archivos de programa \ Java \ jdk1.6.0 \ jre –