在机器使用date命令获取的时间与当前时间一致,但在Java中去获取时间相差了13个小时,这很可能就是机器的时区不太满足当前需要,这时候可以在Java中获取一下时区:
测试机器时区
import java.util.Calendar;import java.util.TimeZone;/*** Test class** @date /2/20*/public class Test {public static void main(String[] args) {Calendar ca = Calendar.getInstance();TimeZone tz = ca.getTimeZone();System.out.println(tz.getID());}}
编译:javac Test.java
运行:java Test
输出:US/Eastern
时区不是Asia/Shanghai
,这就导致了在java程序中获取的时间在 非夏令时段与当前时间相差13个小时,那么如何解决呢?调整机器的时区为Asia/Shanghai
即可。
命令行输入:dpkg-reconfigure tzdata
选择Asia
点击OK 选择Shanghai
点击OK
完成上诉步骤即可调整机器时区为Asia/Shanghai
可以重新运行java Test
查看时区
如果觉得《机器时区导致Java时间与当前时间相差13小时的解决方案》对你有帮助,请点赞、收藏,并留下你的观点哦!