Не можете директно да използвате "toLocaleString()". Можете обаче да добавите отместването.
1) Трети конвейер се използва за добавяне на отместването
2) Четвърти конвейер се използва за форматиране на датата
var tzOffset = 5.5 * 1000 * 60 * 60;
db.MyCollection.aggregate( [
{ "$match": { "ProjectID" : 999 } },
{ "$sort": { "CreatedDate": -1 } },
{
$project: {
localTime: {
$let: {
vars: {
"localTime": { "$add": [ "$DueDate", tzOffset]
}
},
in: { $add: ["$$localTime"] }
}
}
}
},
{
$project: {
"_id": 0,
"formattedLocalTime": {
"$dateToString": {
"format": "%Y-%m-%d %H-%M",
"date": "$localTime"
}
}
}
}
]);
Вход:-
"DueDate" : ISODate("2016-08-11T10:17:09.203Z")
"DueDate" : ISODate("2016-08-11T23:16:09.203Z")
Изход:-
"formattedLocalTime" : "2016-08-11 15-47"
"formattedLocalTime" : "2016-08-12 04-46"
Моля, обърнете внимание на резултата 2. Следващата дата е попълнена правилно.