更改MongoDB中的日期存储格式

时间:2016-01-22 09:26:03

标签: mongodb

在输入的json文件中,我以这种格式收到日期:

std::sort( Rel.begin(), Rel.end(), sortByDate );

加载到MongoDB时,这些日期以这种方式存储:

{ "dt_received" : "2016-01-22T12:35:52.123+05" }

问题是我需要时区来计算我的指标。 在约束中,我无法创建新列,例如" dt_received_timezone"。 所以我正在寻找将日期存储格式更改为MongoDB以使时区出现(或至少不消失) 这是一种方法吗?或任何解决方案?

1 个答案:

答案 0 :(得分:0)

如果您收到来自不同时区的数据并希望保留时区偏移量,则必须将其保存到数据库中,如下所示:

var now = new Date();
db.data.save( { date: now, offset: now.getTimezoneOffset() } );

然后你可以像这样重建原始时间

var record = db.data.findOne();
var localNow = new Date( record.date.getTime() -  ( record.offset * 60000 ) );

有关详细信息,请参阅documentation