我的要求是仅将BSONDateTime
设置为特定数据。从java.util.Date
我发现了确切的数据,但在尝试转换BSONDateTime
时,我的输出是错误的。以下是我的转换代码:
val currentDate: LocalDate = LocalDate.now();
val milliSeconds: Long = currentDate.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
new BSONDateTime(milliSeconds);
输出:
预期:2015年10月16日星期五00:00:00
实际:2015年10月15日星期五18:30:00
更新问题
我的基本要求是,我想使用查询在mongodb数据中设置和比较我的日期。喜欢:我的mongodb文档有以下结构
{
"_id" : ObjectId("561e62892d0000e98ec782c3"),
"addedOn" : ISODate("2015-10-14T14:11:21.361Z"),
"expiredOn" : ISODate("2015-10-30T00:00:00.000Z")
}
我的第一个查询要求使用以下代码将过期日期设置为当前日期:
def currentDateOnly: BSONDateTime = {
val currentDate: LocalDate = LocalDate.now();
val milliSeconds: Long = currentDate.atStartOfDay().atZone(ZoneOffset.UTC).toInstant().toEpochMilli();
logger.info("currentDateOnly Conversion: "+currentDate);
new BSONDateTime(milliSeconds);
}
从这段代码中,我发现当前日期是早上12点。我正在将日期转换为milliSeconds
并创建BSONDateTime
对象,并使用反应性mongo查询设置值,如下所示:
$set(propertyName -> CustomUtility.currentDateOnly) // this is just a set par of update statement.
我的第二个查询要求是使用以下查询匹配“expiredOn”日期:
$doc("expiredOn" $gte CustomUtility.currentDateOnly);
现在,当我在数据库中设置日期时,我的mongo db存储了无效的date值,我也在上面提到过:
输出:
预期:2015年10月16日星期五00:00:00
实际:2015年10月15日星期五18:30:00
我需要存储特定数据并将查询与特定日期进行比较。