不管用什么 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对象存到数据库 两个方法都转不了 有没有大神碰到过,求帮忙解惑
date在java里是绝对的吧,全世界的date都是一样的,就是那个毫秒数都是一样的。你说的不一样只是显示的不一样,就是同样的date因为时区不同显示的时间不同。 也就是说 你用c.getTime() 不管你怎么设置时区 得到的结果都是一样的。
你要根据不同时区显示不同时间,有一种方式就是设置默认时区。。。
TimeZone.setDefault(TimeZone.getTimeZone("GMT+8"));
Calendar c = Calendar.getInstance();
return c.getTime();
这个反正感觉有点怪。。。