问题描述
现在是太平洋标准时间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
中得到了这个信息:
CEST,2020年8月1日,上午2:20
Google表示不同意,并告诉我在柏林的时间是:
2020年8月31日上午2:23
...即是8月31日而不是8月1日。
我想念什么?
解决方法
您的时间字符串是'h:mm A z,MMM do,YYYY'
,它使用的是do
的{{1}}。
请改用Day of week
(请注意'h:mm A z,MMM Do,YYYY'
中大写的D
代表Do
)。
此处的文档:https://github.com/prantlf/date-fns-timezone/blob/master/docs/API.md#formattotimezone
因此您的代码变为:
Day of month