java - 使用 Java 在 mongodb 中插入 SQL 日期作为 ISODate

标签 java sql-server mongodb

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

我尝试了以下方法,但不起作用

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"),

最佳答案

请尝试使用以下代码。这应该在 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

关于java - 使用 Java 在 mongodb 中插入 SQL 日期作为 ISODate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37655388/

相关文章:

node.js - Heroku + MongoLab 插件与 Node.js 应用程序的连接错误 - 错误 : connect ECONNREFUSED 127. 0.0.1:27017

java - 迁移到 Java 9 或更高版本时是否需要切换到模块?

java - 这是在 Java 中创建允许任何来源的 CORS 过滤器的好方法吗?

sql-server - SQL 将表内容输出为字符串

javascript - 如何使用 MSSQL 查询结果作为我的选择框选项

mongodb - 使用 Mongo 集合中的特殊字符

java - 跟踪覆盖比较方法中排序的进度

Java 理解 Math.getExponent(Double)

最近六个 "full"个月的 SQL

node.js - 从 Firebase 迁移到自己的服务器和后端