使用Java在mongodb中将SQL Date作为ISODate插入

时间:2016-06-06 10:44:39

标签: java sql-server mongodb

我是MongoDB的新手,我正在读取MS 2013-02-15 13:02:16.0002013-02-15 13:02:16等MSSQL数据库的时间戳,如何在MangoDB中将它们作为ISODate插入。

我尝试过以下但是不起作用

doc.put(col, new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss'Z'", Locale.ENGLISH).parse(value));

我查询集合时得到的结果表示为字符串

 "DateCreated" : "2012-09-11 19:06:45.0",
 "DateModified" : "2012-09-11 19:06:45.0",

我期待像

这样的东西
"DateCreated" : ISODate("2012-09-11T19:06:45.xxZ)",
"DateModified" : ISODate("2012-09-11 19:06:45.0"),

1 个答案:

答案 0 :(得分:1)

请尝试使用以下代码。这应该在Mongo DB集合中将日期作为ISODate(“2013-02-15T13:02:16.100Z”)插入。

    LocalDateTime ld = LocalDateTime.parse("2013-02-15 13:02:16.100",
            DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS"));        
    Date date = Date.from(ld.atZone(ZoneId.systemDefault()).toInstant());   
    doc.put(col, date);

如果需要考虑ZoneId。请参考以下代码并相应更改区域ID。

Date date = Date.from(ld.atZone(ZoneId.of("UTC")).toInstant());

https://docs.oracle.com/javase/tutorial/datetime/iso/timezones.html

Date date = Date.from(ld.atZone(ZoneId.of("Australia/Darwin")).toInstant());

                America/Caracas     -04:30
               America/St_Johns     -02:30
                  Asia/Calcutta     +05:30
                   Asia/Colombo     +05:30
                     Asia/Kabul     +04:30
                 Asia/Kathmandu     +05:45
                  Asia/Katmandu     +05:45
                   Asia/Kolkata     +05:30
                   Asia/Rangoon     +06:30
                    Asia/Tehran     +04:30
             Australia/Adelaide     +09:30
          Australia/Broken_Hill     +09:30
               Australia/Darwin     +09:30
                Australia/Eucla     +08:45
                  Australia/LHI     +10:30
            Australia/Lord_Howe     +10:30
                Australia/North     +09:30
                Australia/South     +09:30
           Australia/Yancowinna     +09:30
            Canada/Newfoundland     -02:30
                   Indian/Cocos     +06:30
                           Iran     +04:30
                        NZ-CHAT     +12:45
                Pacific/Chatham     +12:45
              Pacific/Marquesas     -09:30
                Pacific/Norfolk     +11:30