使用java在MongoDB中将字符串转换为ISODate

使用java在MongoDB中将字符串转换为ISODate,java,date,mongodb-query,isodate,Java,Date,Mongodb Query,Isodate,最近,我将带有日期字段的CSV文件导入MongoDB。 问题在于日期字段,我尝试将日期字段从字符串更改为ISO格式。 目前显示为“2016-07-31T04:18:17.000Z”。我不知道如何使用java将其更改为ISO格式。 我试过这个方法 String date1 = dr1.getString("created_at"); DateFormat df = new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy");

最近,我将带有日期字段的CSV文件导入MongoDB。 问题在于日期字段,我尝试将日期字段从字符串更改为ISO格式。 目前显示为“2016-07-31T04:18:17.000Z”。我不知道如何使用java将其更改为ISO格式。 我试过这个方法

        String date1 = dr1.getString("created_at");
        DateFormat df = new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy"); 

        Date Created_at =  df.parse(date1);
        dr1.append("created_at", Created_at);
        Brand_Mention(dr1,collection1,new ObjectId(dr1.get("_id").toString()));

谁能帮我解决这个问题

看看
java.time.Instant
()类

它有方法
parse()
来解析字符串。 然后,您可以使用
LocalTime.from()
将即时时间点转换为本地时间(即没有日期或时区的时分秒)


然后您可以比较本地时间以找到所需的时间范围。

“2016-07-31T04:18:17.000Z”是ISO格式。。。(或者是ISO-8601格式)。你问题的第二部分应该分为一个单独的问题,因为它与格式完全不同。@JonSkeet,但我在mongodb中未能以这种格式进行查询,这并不能使问题变得更清楚。。。您仍然没有删除“拆分计时”部分,这确实不应该存在。如果您能给出一个您正试图格式化的确切ISO格式的示例,这会有所帮助。请回顾一下我尝试过此方法“”String date1=dr1.getString(“created_at”);DateFormat df=新的简化格式(“EEE MMM dd HH:mm:ss Z yyyy”);创建日期=df.parse(日期1);dr1.追加(“已创建”,已创建);品牌名称(dr1,collection1,新ObjectId(dr1.get(“\u id”).toString());但正如您看到的字符串“2016-07-31T04:18:17.000Z”是ISO格式,而不是“EEE-MMM-dd-HH:mm:ss-Z-yyyy”。所以在SimpleDataFormat中不需要,只需使用Instant.parse(dr1.getString(“created_at”))。另外,我应该注意,在Java编码约定中,变量和方法都是以小首字母命名的,以驼峰大小写。“createdAt”,不是“Created_at”,而是“BrandTitle”,而不是“Brand_Title”。谢谢!!!我用Javascript解决了这个问题。