new Date()跟系统时间差8小时

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了new Date()跟系统时间差8小时相关的知识,希望对你有一定的参考价值。

我的系统使用的北京东八区市区。
目前程序new Date()的时候出来的时间总是比当前系统时间晚8个小时,
现在只能在new Date()之前用
TimeZone tz = TimeZone.getTimeZone("ETC/GMT-8");
TimeZone.setDefault(tz);
设置时区后在new Date()才能取到正常的系统时间,
请问这种情况如何能解决,谢谢!

date
d
=
new
date();
simpledateformat
sdf=new
simpledateformat("yyyy-mm-dd
kk:mm:ss
");
sdf.settimezone(timezone.gettimezone("asia/shanghai"));
system.out.println(sdf.format(d));
用这个试试
你不太可能每个地方都使用上面这段代码,最好是包装一下,只需要设置一次就可以了
参考技术A import java.util.Calendar;
import java.util.TimeZone;
public class getTimezone

public static void main(String args[])

Calendar cl=Calendar.getInstance();
cl.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
//cl.setTimeZone(TimeZone.getDefault());
System.out.println(cl.getTimeZone());
System.out.println(cl.getTime());
System.out.println(cl.get(Calendar.HOUR_OF_DAY));
System.out.println(cl.get(Calendar.MINUTE));
System.out.println(cl.get(Calendar.SECOND));

Calendar cl1=Calendar.getInstance(TimeZone.getTimeZone("GMT+8:00"));
System.out.println(cl1.getTimeZone());
System.out.println(cl1.getTime());

参考技术B 调你系统时间的时区哈。。

以上是关于new Date()跟系统时间差8小时的主要内容,如果未能解决你的问题,请参考以下文章

liunx tomcat(java new Date)服务时间比系统时间慢8个小时,刚起完服务时间是正常的,隔一天就变了

Java 时间不一致

new java.util.Date() 得到的时间与系统时间不一样,为啥?

怎么实时同步java虚拟机与操作系统时区 及JVM启动后再更改操作系统时区或时间也能保持其同步? new date() 时差8个小时的解决方案

js new Date(String) 时间少8个小时的问题

java new Date()得到的时间和系统时间不一样