java 时区转换问题

不管用什么 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对象存到数据库 两个方法都转不了 有没有大神碰到过,求帮忙解惑

翻过高山走不出你
浏览 479回答 1
1回答

动漫人物

date在java里是绝对的吧,全世界的date都是一样的,就是那个毫秒数都是一样的。你说的不一样只是显示的不一样,就是同样的date因为时区不同显示的时间不同。 也就是说 你用c.getTime() 不管你怎么设置时区 得到的结果都是一样的。 你要根据不同时区显示不同时间,有一种方式就是设置默认时区。。。  TimeZone.setDefault(TimeZone.getTimeZone("GMT+8")); Calendar c = Calendar.getInstance(); return c.getTime(); 这个反正感觉有点怪。。。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java