将日期时间字符串转换为 utc
Converting date time string to utc
我有一个输入时间设置是这样的。
{
"effectiveFrom": "2022-03-24 06:28",
}
我需要将其转换为像这样的 UTC 格式
{
"effective_from": "2022-03-24T00:58:00.000Z",
}
我该怎么做我在这里使用这段代码,但它没有按预期工作任何帮助都很好。
new Date(ctx.params.dateTime);
当您使用 new Date(ctx.params.dateTime)
解析日期字符串时,您将得到 Date object in return.
要获取 UTC 字符串作为输出,您可以对该对象调用 toISOString()
方法。
const dt = new Date('2022-03-24 06:28')
const isoString = dt.toISOString()
console.log(isoString)
The toISOString() method returns a string in
simplified extended ISO format (ISO 8601), which is always 24 or 27
characters long
(YYYY-MM-DDTHH:mm:ss.sssZ
or
±YYYYYY-MM-DDTHH:mm:ss.sssZ,
respectively). The timezone is always zero UTC offset, as denoted by the suffix
"Z".
来源:MDN Web Docs
console.log(new Date('2022-03-24 06:28').toISOString())
.toISOString()
将为您提供所需的格式。但是你不能对其执行任何日期操作,因为你得到的输出是一个字符串。
我刚刚创建了一个简单的节点文件并检查你哪里做错了。
var http = require("http");
const Sequelize = require("sequelize");
const sequelize = new Sequelize("test", "postgres", "postgres", {
host: "localhost",
port: 5431,
dialect: "postgres",
options: {
encrypt: false,
},
});
const UserProfile = sequelize.define("userProfile", {
name: {
type: Sequelize.STRING,
},
DateTimeCol: {
type: Sequelize.DATE,
},
TimeCol: {
type: Sequelize.TIME,
},
});
userProfile.sync().then(() => {
userProfile.create({
name: "Test User",
DateTimeCol: "2022-03-24T08:00:00.000Z",
TimeCol: "13:00",
});
userProfile.findAll().then((data) => console.log("user response", data));
});
var server = http.createServer(function (req, res) {
res.writeHead(200);
res.end();
});
server.listen(8085);
顺便说一句,我已经使用sequelize和postgres进行了测试
我有一个输入时间设置是这样的。
{
"effectiveFrom": "2022-03-24 06:28",
}
我需要将其转换为像这样的 UTC 格式
{
"effective_from": "2022-03-24T00:58:00.000Z",
}
我该怎么做我在这里使用这段代码,但它没有按预期工作任何帮助都很好。
new Date(ctx.params.dateTime);
当您使用 new Date(ctx.params.dateTime)
解析日期字符串时,您将得到 Date object in return.
要获取 UTC 字符串作为输出,您可以对该对象调用 toISOString()
方法。
const dt = new Date('2022-03-24 06:28')
const isoString = dt.toISOString()
console.log(isoString)
The toISOString() method returns a string in simplified extended ISO format (ISO 8601), which is always 24 or 27 characters long (YYYY-MM-DDTHH:mm:ss.sssZ or ±YYYYYY-MM-DDTHH:mm:ss.sssZ, respectively). The timezone is always zero UTC offset, as denoted by the suffix "Z".
来源:MDN Web Docs
console.log(new Date('2022-03-24 06:28').toISOString())
.toISOString()
将为您提供所需的格式。但是你不能对其执行任何日期操作,因为你得到的输出是一个字符串。
我刚刚创建了一个简单的节点文件并检查你哪里做错了。
var http = require("http");
const Sequelize = require("sequelize");
const sequelize = new Sequelize("test", "postgres", "postgres", {
host: "localhost",
port: 5431,
dialect: "postgres",
options: {
encrypt: false,
},
});
const UserProfile = sequelize.define("userProfile", {
name: {
type: Sequelize.STRING,
},
DateTimeCol: {
type: Sequelize.DATE,
},
TimeCol: {
type: Sequelize.TIME,
},
});
userProfile.sync().then(() => {
userProfile.create({
name: "Test User",
DateTimeCol: "2022-03-24T08:00:00.000Z",
TimeCol: "13:00",
});
userProfile.findAll().then((data) => console.log("user response", data));
});
var server = http.createServer(function (req, res) {
res.writeHead(200);
res.end();
});
server.listen(8085);
顺便说一句,我已经使用sequelize和postgres进行了测试