我正在本地计算机上运行代码。 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);


sysout正在打印2016-12-23T11:24:54.907。在数据库中,我正在2016-12-23 05:54:54.000Z。有人可以帮忙吗?

谢谢,

最佳答案

Mongo存储时间为时间,在程序中将Timezone设置为local。
LocalDateTime localtDateAndTime = LocalDateTime.now(ZoneId.of("Australia/Sydney"));

10-16 06:26