2016-12-23 6 views
0

Я запускаю код на своей локальной машине. MongoDb также работает в локальной сети. Поэтому в часовом поясе не должно быть проблем, если я не ошибаюсь. Я пишу это:MongoDB установка даты даты не происходит отлично от java

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. В db я получаю 2016-12-23 05: 54: 54.000Z. Может ли кто-нибудь помочь?

Thanks, Sumit.

+0

Это вопрос во временной зоне. установить часовой пояс, а затем проверить –

+0

работает ли TimeZone.setDefault? – Jerry06

+0

Это работает так, как он разработан. Mongo хранит дату и время в UTC. Перейдите в нужную зону, читая ее из базы данных. – Veeram

ответ

0

Mongo store time as UTC время, установить Часовой пояс локальным в вашей программе.

LocalDateTime localtDateAndTime = LocalDateTime.now(ZoneId.of("Australia/Sydney"));