【发布时间】:2020-02-21 23:06:10
【问题描述】:
问题
看起来当我使用format() 函数时,它会自动将原始UTC时间转换为我的时区(UTC+8)。我已经在他们的文档中挖掘了几个小时,似乎找不到将其默认为 UTC 时间的方法。
import { parseISO, format } from "date-fns";
const time = "2019-10-25T08:10:00Z";
const parsedTime = parseISO(time);
console.log(parsedTime); // 2019-10-25T08:10:00.000Z
const formattedTime = format(parsedTime, "yyyy-MM-dd kk:mm:ss");
console.log(formattedTime); // 2019-10-25 16:10:00 <-- 8 HOURS OFF!!
我尝试使用包data-fns-tz 并使用类似的东西
format(parsedTime, "yyyy-MM-dd kk:mm:ss", {timeZone: "UTC"});
仍然没有运气。
请帮忙!
预期输出
2019-10-25 08:10:00
实际输出
2019-10-25 16:10:00
【问题讨论】:
-
我在这里测试了你的代码。这似乎工作正常。 repl.it/repls/RepentantDimFactor
-
@khan - repl.it 以 UTC 运行,这就是原因。
-
解析时,2019-10-25 08:10:00 将被解释为本地,而不是 UTC,并且在某些浏览器中将被视为无效日期。
标签: javascript date datetime date-fns