当操作系统(Windows)中,时间设置中,选择“根据夏令时自动调节时钟”,然后将时区设置成最上面一个,现在调用下面方法:
new Date(System.currentTimeMillis()).toLocaleString()
得到的字符串的时间值与操作系统差了一天。
如果不选中“根据夏令时自动调节时钟”,则调用同样的方法返回的字符串与操作系统时间一致。
但是使用c++
time_t ltime;
/* Get UNIX-style time and display as number and string. */
time( <ime );
printf( "Time in seconds since UTC 1/1/70:\t%ld\n", ltime );
printf( "UNIX time and date:\t\t\t%s", ctime( <ime ) );
却能够得到与操作系统一样的时间。请高手们给出一个用java也能得到和操作系统完全一致的一个时间的方案,谢谢
new Date(System.currentTimeMillis()).toLocaleString()
得到的字符串的时间值与操作系统差了一天。
如果不选中“根据夏令时自动调节时钟”,则调用同样的方法返回的字符串与操作系统时间一致。
但是使用c++
time_t ltime;
/* Get UNIX-style time and display as number and string. */
time( <ime );
printf( "Time in seconds since UTC 1/1/70:\t%ld\n", ltime );
printf( "UNIX time and date:\t\t\t%s", ctime( <ime ) );
却能够得到与操作系统一样的时间。请高手们给出一个用java也能得到和操作系统完全一致的一个时间的方案,谢谢
Calendar cal=Calendar.getInstance(tz);
Date date=cal.getTime();
System.out.println(date);