我想将现有的字符串日期转换为新的ISO日期格式。我使用了一些脚本,但它们不足以转换与日期相关的时间。例如:2013-01-10 12:22:22 AM转换为ISODate(“2013-01-10T06:00:00Z”)。这里的时间不是转换。请帮忙。
var cursor = db.customer.find({"created_at": {"$exists": true, "$type": 2 }});
while (cursor.hasNext()) {
var doc = cursor.next();
var parts = doc.created_at.split("-");
var dt = new Date(
parseInt(parts[0], 10), // year
parseInt(parts[1], 10) - 1, // month
parseInt(parts[2], 10)// day
);
db.customer.update(
{"_id": doc._id},
{"$set": {"created_at": dt}}
)
}
答案 0 :(得分:0)
只需使用新的ISODate():
new ISODate("2013-01-10 12:22:22 AM ")
ISODate("2013-01-10T12:22:22Z")
在您的完整示例中:
var cursor = db.customer.find({"created_at": {"$exists": true, "$type": 2 }});
while (cursor.hasNext()) {
var doc = cursor.next();
db.customer.update(
{"_id": doc._id},
{"$set": {"created_at": new ISODate(doc.created_at)}}
)
}