java mongodb存时间少8小时
时间: 2023-05-03 13:05:54 浏览: 125
MongoDB存储时间时差问题的解决方法
5星 · 资源好评率100%
在Java中,时间的表示通常用Java Date类或者Calendar类。这些类在表示时间时,采用格林威治时间,即世界标准时间UTC(Universal Time Coordinated)。
在使用MongoDB存储时间时,如果没有指定时区,MongoDB默认采用UTC存储时间。然而,时间显示在前端界面时,通常需要转换成本地时区的时间。这就会出现时间少8小时的问题。
要解决这个问题,需要在Java中设置时区。可以使用TimeZone类或者Joda Time库来设置时区。例如,对于中国时区,可以设置为:
TimeZone timeZone = TimeZone.getTimeZone("GMT+8");
然后,在将时间写入MongoDB中时,可以设置时区:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
sdf.setTimeZone(timeZone);
Date date = sdf.parse("2022-09-01 12:00:00");
collection.insertOne(new Document("time", date));
这样,在前端界面显示时间时,就可以正确地显示本地时区时间,而不是UTC时间减8小时了。
阅读全文