首页 新闻 会员 周边

java 时区转换问题

0
悬赏园豆:5 [已解决问题] 解决于 2017-05-18 21:16

不管用什么 java8或者java8以下的方法转换都不能把CST转为GMT,

方法一:

TimeZone gmt = TimeZone.getTimeZone("GMT+8");
Calendar c = Calendar.getInstance(gmt);
return c.getTime();

方法二:

ZoneId z = ZoneId.of("Asia/Shanghai");
// LocalDateTime localDateTime = LocalDateTime.now(z);
ZonedDateTime zonedDateTime = ZonedDateTime.now(z);
Instant instant = zonedDateTime.toInstant();
Date d = new Date(instant.toEpochMilli());
return d;

需要转的是Date对象存到数据库 两个方法都转不了 有没有大神碰到过,求帮忙解惑

dom树的主页 dom树 | 初学一级 | 园豆:-2
提问于:2017-05-07 17:38
< >
分享
最佳答案
0

date在java里是绝对的吧,全世界的date都是一样的,就是那个毫秒数都是一样的。你说的不一样只是显示的不一样,就是同样的date因为时区不同显示的时间不同。 也就是说 你用c.getTime() 不管你怎么设置时区 得到的结果都是一样的。

你要根据不同时区显示不同时间,有一种方式就是设置默认时区。。。 

TimeZone.setDefault(TimeZone.getTimeZone("GMT+8"));

Calendar c = Calendar.getInstance();

return c.getTime();

这个反正感觉有点怪。。。

收获园豆:5
司幸 | 菜鸟二级 |园豆:319 | 2017-05-08 18:27
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册