Javascript 如何将日期时间从ISO格式转换为UTC时区?
我正在使用Javascript 如何将日期时间从ISO格式转换为UTC时区?,javascript,datetime,momentjs,utc,iso8601,Javascript,Datetime,Momentjs,Utc,Iso8601,我正在使用moment.js,我想将ISO格式的日期时间转换为UTC时区 function toISO(dt) { return moment(dt).format("YYYY-MM-DDTHH:mm:ss") + "Z"; } var date = new Date(); var isoDate= toISO(date) 我可以将本地时间转换为UTC+ISO格式,但无法将ISO格式转换为UTC时区 function toISO(dt) { return moment(dt).form
moment.js
,我想将ISO格式的日期时间转换为UTC时区
function toISO(dt) {
return moment(dt).format("YYYY-MM-DDTHH:mm:ss") + "Z";
}
var date = new Date();
var isoDate= toISO(date)
我可以将本地时间转换为UTC+ISO格式,但无法将ISO格式转换为UTC时区
function toISO(dt) {
return moment(dt).format("YYYY-MM-DDTHH:mm:ss") + "Z";
}
var date = new Date();
var isoDate= toISO(date)
输入:
2018-03-22T00:00:00Z
预期产出:
日期应为UTC时区。如果我计算出该值,则应为:
22018-03-21T18:30:00Z
Fox示例:我想将
ISODATE(2018-03-22T00:00:00Z)
转换为UTC时区
function toISO(dt) {
return moment(dt).format("YYYY-MM-DDTHH:mm:ss") + "Z";
}
var date = new Date();
var isoDate= toISO(date)
直接我们可以转换
2018-03-22T00:00:00Z
和2018-03-21T18:30:00Z
都已处于UTC
注意最后的Z
。它不是一个硬编码的字母,您可以将其添加到末尾-它有一个特定的含义,它告诉您日期/时间是UTC
如果您想将UTC日期转换为另一个时区(我猜这就是您想要的),您可以使用:
只需将时区名称更改为要转换的名称
调用format()
将为您提供ISO8601格式的转换日期/时间:
moment.tz('2018-03-22T00:00:00Z','Asia/Kolkata').format() // 2018-03-22T05:30:00+05:30
请注意,偏移量从
Z
更改为+05:30
。这意味着上述日期/时间比UTC提前5小时30分钟,这是将2018-03-22T00:00:00Z
转换为加尔各答时区的结果
注意:我认为你误解了这里的概念
。它定义了世界各地的当前日期/时间,它使用原子钟来确保地球上的每个人都是同步的,等等
。它定义了格式(日期的文本表示)。日期/时间可以是ISO格式,无论是否为UTC格式
这就是为什么“从UTC转换为ISO”(或反之亦然)毫无意义。
2018-03-22T00:00:00Z
和2018-03-21T18:30:00Z
都已经在UTC中了
注意最后的Z
。它不是一个硬编码的字母,您可以将其添加到末尾-它有一个特定的含义,它告诉您日期/时间是UTC
如果您想将UTC日期转换为另一个时区(我猜这就是您想要的),您可以使用:
只需将时区名称更改为要转换的名称
调用format()
将为您提供ISO8601格式的转换日期/时间:
moment.tz('2018-03-22T00:00:00Z','Asia/Kolkata').format() // 2018-03-22T05:30:00+05:30
请注意,偏移量从
Z
更改为+05:30
。这意味着上述日期/时间比UTC提前5小时30分钟,这是将2018-03-22T00:00:00Z
转换为加尔各答时区的结果
注意:我认为你误解了这里的概念
。它定义了世界各地的当前日期/时间,它使用原子钟来确保地球上的每个人都是同步的,等等
。它定义了格式(日期的文本表示)。日期/时间可以是ISO格式,无论是否为UTC格式
这就是为什么“从UTC转换为ISO”(或从UTC转换为ISO)毫无意义。请包含每个输入的输入和预期输出。@Igor convert-to-UTC。。2018-03-22T00:00:00Z让我重新措辞:你的问题,包括输入和相应的预期输出。如果你真的想对那些看问题的人有所帮助,就好像你在写单元测试一样去做。
2018-03-22T00:00:00Z
怎么不在“日期应该在UTC时区”中?同样,编写它就像编写单元测试一样。您正在检查的类型是什么,其值应该是什么?目前还不清楚您实际要求/需要什么。2018-03-22T00:00:00Z
不是本地时间,末尾的Z
表示时区是UTC。请包括每个输入的输入和预期输出。@Igor转换为UTC。。2018-03-22T00:00:00Z让我重新措辞:你的问题,包括输入和相应的预期输出。如果你真的想对那些看问题的人有所帮助,就好像你在写单元测试一样去做。2018-03-22T00:00:00Z
怎么不在“日期应该在UTC时区”中?同样,编写它就像编写单元测试一样。您正在检查的类型是什么,其值应该是什么?目前还不清楚您实际要求/需要什么。2018-03-22T00:00:00Z
不是本地时间,末尾的Z
表示时区是UTC。有两种转换方式。。函数toISO(dt){return moment(dt).format(“YYYY-MM-DDTHH:MM:ss”)+“Z”}函数toISOWithUtc(dt){return moment(dt).utc().format(“YYYY-MM-DDTHH:MM:ss”)+“Z”}第一个toISO只转换为ISO格式,而不是utc格式。第二个转换为UTC和ISO1-如果你在最后加了一个Z
,这意味着日期是UTC-检查上面答案中的链接。2-UTC是一种时间标准,用于定义“当前时间”等内容,并由时区用于定义世界各地的本地时间,而ISO8601定义了格式(日期的文本表示)。将UTC转换为ISO毫无意义:“YYYY-MM-DDTHH:MM:ss”是一种ISO格式,无论是否使用UTC。是的,您是正确的。我已经以错误的方式转换到UTC。谢谢你,有两种方法可以转换。。函数toISO(dt){return moment(dt).format(“YYYY-MM-DDTHH:MM:ss”)+“Z”}函数toISOWithUtc(dt){return moment(dt).utc().format(“YYYY-MM-DDTHH:MM:ss”)+“Z”}第一个toISO只转换为ISO格式,而不是utc格式。第二个转换为UTC和ISO1-如果你在最后加了一个Z
,这意味着日期是UTC-检查上面答案中的链接。2-UTC是一个tim