【发布时间】:2016-12-23 06:06:08
【问题描述】:
我在本地机器上运行代码。 mongoDb 也在本地运行。所以如果我没记错的话,时区应该没有问题。我正在写这个:
DateTimeFormatter dateTimeFormatter = ISODateTimeFormat.dateHourMinuteSecond();
LocalDateTime date=new LocalDateTime();
DateTime dateTime = dateTimeFormatter.parseDateTime(dateTimeFormatter.print(date));
BasicDBObject basicDBObject = new BasicDBObject();
basicDBObject.put("batchId",batchId);
basicDBObject.put("batchStatus",BatchStatus.STARTED.toString() );
TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>: "+ date.toString());
basicDBObject.put("startTime",dateTime.toDate());
mongoTemplate.getCollection(collectionName).insert(basicDBObject);
系统输出正在打印 2016-12-23T11:24:54.907。在 db 中,我得到 2016-12-23 05:54:54.000Z。有人可以帮忙吗?
谢谢, 苏米特。
【问题讨论】:
-
这是时区问题。设置时区,然后检查
-
TimeZone.setDefault 工作吗?
-
这是按照设计的方式工作的。Mongo 以 UTC 存储日期时间。从数据库中读回所需区域时更改为所需区域。
标签: java mongodb date datetime datetime-format