【发布时间】:2017-04-25 06:09:07
【问题描述】:
Mongoose 以 UTC 格式将日期时间保存为 ISODate("2017-04-25T09:40:48.193Z")。如何将其时区更改为我的本地服务器时区。所以我每次从数据库中检索它时都不需要更改时间。这是我的模型架构:
var MyModelSchema = new mongoose.Schema(
{
id: Number,
description: String,
created: {type: Date},
modified: {type: Date, default: Date.now},
},
{
collection: 'my'
}
);
PS:我知道最好以 UTC 格式保存时间,但这里我的要求是将其保存在指定的时区。
【问题讨论】:
-
我会强烈建议不要这样做,即使它是可行的。您真的不想将时间戳存储在服务器本地时区中。为什么你的服务器时区如此特别?当他们想要检查日志或其他什么时,将信息转换为查看者的时区更有可能有用吗?您是否打算仅存储一个本地日期/时间?如果是这样,那将丢失有关 DST“回退”转换的信息......如果您更改服务器时区或有多个时区,则会导致可怕的问题。 UTC 是时间戳的正确时区。)
-
至于你的 PS - 如果有人逼你做坏主意,你有责任反击。不要只接受坏主意。
-
服务器的时区是绝对不相关的。但是,您可能需要存储仅日期值,例如存储生日。为此,请参阅my answer here。这可能适用于无时区的本地日期和时间,但不适用于您在此处显示的创建和修改日期。这些应该始终通过 Mongo 的
ISODate对象使用 UTC。
标签: node.js mongodb datetime mongoose timezone