无法将UTC转换为PST,反之亦然



我正在使用 momentjs#timezone lib从 UTC转换为时区,反之亦然。

现在,面对转换的问题。

她是我的代码。

var myDate = "2019-05-11 18:22:40" //stored in DB utc format
myDate = timezone(myDate).tz("America/Los_Angeles").format("YYYY-MM-DD HH:mm:ss"); //converted in America/Los_Angeles Timezone
//output : myDate = "2019-05-11 05:52:40"

现在,想再次掩盖UTC

myDate = timezone.tz(myDate, "America/Los_Angeles"); //added tz
myDate = timezone(myDate).tz("utc").format("YYYY-MM-DD HH:mm:ss");

但是输出即将到来"2019-05-11 12:52:40",该输出与输入"2019-05-11 18:22:40"不同。

我在这里做错了吗?

从字符串创建矩时,未指定时区时,MOMM假设是本地时间。根据文档的那一刻:

力矩(...(是本地模式。假定输入模棱两可(无偏移( 成为当地时间。明确的输入(带偏移(已调整为本地 时间。

so" 2019-05-11 18:22:40"将以当地时区的日期阅读。

您可以使用moment.utc("2019-05-11 18:22:40")

假定它是UTC

这意味着这样更改您的代码:

var myDate = "2019-05-11 18:22:40" //stored in DB utc format
myDate = timezone.utc(myDate).tz("America/Los_Angeles").format("YYYY-MM-DD HH:mm:ss");

但理想情况下,您的数据库应使用ISO-8601标准来存储/返回日期,以使时区明确,即" 2019-05-11T18:22:40Z"。" z"表示UTC,因此如果您调用moment("2019-05-11T18:22:40Z")

相关内容

  • 没有找到相关文章

最新更新