MongoDB日期时间插入在java中并不是完美的

MongoDB日期时间插入在java中并不是完美的,java,mongodb,date,datetime,datetime-format,Java,Mongodb,Date,Datetime,Datetime Format,我正在本地机器上运行代码。mongoDb也在本地运行。所以,如果我没有错的话,时区应该没有问题。我写这封信: DateTimeFormatter dateTimeFormatter = ISODateTimeFormat.dateHourMinuteSecond(); LocalDateTime date=new LocalDateTime(); DateTime dateTime = dateTimeFormatter.parseDateTime(dateTimeFormatter.print

我正在本地机器上运行代码。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。有人能帮忙吗

谢谢, Sumit.

Mongo将时间存储为时间,在程序中将时区设置为本地


LocalDateTime localtDateAndTime=LocalDateTime.now(ZoneId.of(“澳大利亚/悉尼”));

这是时区问题。设置时区,然后选中timezone.setDefault是否有效?这是它的设计方式。Mongo以UTC存储日期时间。从数据库读回所需区域时,将其更改为所需区域。