我有一个Date
。它位于本地时区。我希望新的Date
位于一天的开始,位于另一个时区。以下是我不希望看到的内容:
- UTC格式的
Date
,相当于转换为UTC的第一个日期 - 一串
具体来说,UTC不起作用,因为在UTC中获取一天的开始与在时区中获取一天的开始不同。
所以如果我在加尔各答有一个约会,并且想在旧金山得到那一天的开始,加尔各答的日期和格林威治的日期可能不是同一个日期。加尔各答的日期可能是6月15日,格林威治的日期可能是6月15日,但是旧金山的日期可能是6月2日。所以在一个设置为UTC
的日期上调用setMinutes(0)
等命令是行不通的。
如果有帮助的话,我也使用date-fns
(而不是moment
),但似乎没有,因为所有日期(包括date-fns-tz
中的日期)都以本地时间或UTC时间返回。)
这在Javascript中是可能的还是我疯了?
注:
这与Convert date to another timezone in JavaScript不同
这是关于转换成字符串的。我不想要字符串。
1条答案
按热度按时间elcex8rz1#
一种方法是:
1.获取所需位置的当前时区偏移量
1.为所需的UTC日期创建日期
1.应用#1的偏移
例如,使用Get Offset of the other Location in Javascript处的答案:
但是,我建议您使用支持时区的库,因为Date对象有许多怪癖,而且正在开发一个新的Temporal object。