【问题标题】:date-fns-timezone Giving Wrong Result?date-fns-timezone 给出错误的结果?
【发布时间】:2020-12-19 03:13:25
【问题描述】:

现在是太平洋标准时间 2020 年 8 月 30 日星期日下午 5:20。

如果我运行这个:

import {formatToTimeZone } from 'date-fns-timezone';
const dateNow = new Date();
const timeFormattedForUserTimezone = formatToTimeZone(dateNow, 'h:mm A z, MMM do, YYYY', {timeZone:'Europe/Berlin'})

...我在timeFormattedForUserTimezone

2020 年 8 月 1 日,欧洲中部时间凌晨 2:20

Google 不同意,告诉我柏林的时间是:

2020 年 8 月 31 日凌晨 2:23

...即8 月 31 日而不是 8 月 1 日。

我错过了什么?

【问题讨论】:

标签: javascript node.js date datetime date-fns


【解决方案1】:

您的时间字符串是'h:mm A z, MMM do, YYYY',它使用do,即Day of week

请改用'h:mm A z, MMM Do, YYYY'(注意Do 中的大写D 代表Day of month)。

这里的文档:https://github.com/prantlf/date-fns-timezone/blob/master/docs/API.md#formattotimezone

所以你的代码变成了:

import {formatToTimeZone } from 'date-fns-timezone';
const dateNow = new Date();
const timeFormattedForUserTimezone = formatToTimeZone(dateNow, 'h:mm A z, MMM Do, YYYY', {timeZone:'Europe/Berlin'})

【讨论】:

    猜你喜欢
    • 2015-12-19
    • 2020-06-17
    • 1970-01-01
    • 1970-01-01
    • 2013-01-28
    • 2021-06-13
    • 2014-09-16
    • 2011-10-22
    • 2011-11-15
    相关资源
    最近更新 更多