【发布时间】:2018-12-11 16:02:25
【问题描述】:
我有一个带时间和时区的日期。
我需要这种格式的特定方式,这就是我使用时刻的原因。
假设我要输入的日期字符串是2018-12-31 02:00:00.000 +00:00
我将其转换为特定格式,执行以下操作:
const properDate = moment(date, 'YYYY-MM-DD hh:mm:ss:ms')
但是这是假设日期是 UTC,并且我希望它在美国/纽约时区,所以我期待的日期和时间实际上是:
2018-12-30 21:00:00.000
所以我的问题是,如何在将日期/时间转换为特定格式时添加时区? 我知道这并不像传递参数那么简单。它是我应该调用的另一个函数吗?
我试过了
const properDate = moment(date, 'YYYY-MM-DD hh:mm:ss:ms').tz('America/New_York')
但这也没用。
编辑:我还应该提到我也在使用moment-timezone。似乎我无法将其格式化为我需要的格式以及将其置于正确的时区。
所以基本上,我认为我可以这样做:
const momentDate = moment(date)
const properDate = momentDate.tz(timezone).format('YYYY-MM-DD hh:mm:ss:ms')
不幸的是,只要我尝试格式化它,它也不起作用。
【问题讨论】:
-
您必须使用moment-timezone 并使用
moment.tz解析您的输入,很确定之前有人问过。 -
我对此进行了调查,但我发现这样做的唯一方法是,我无法按照我的要求对其进行格式化。基本上我想我需要这两者一起工作:将其格式化为
YYYY-MM-DD hh:mm:ss:ms格式并使其处于正确的时区。
标签: javascript date momentjs