我正在尝试做一些非常简单的事情,肯定有人以前解决过这个问题:
我有一个日期字符串(来自Facebook API),看起来像2015-09-08T19:05:00-0400
。
我想使用moment.calendar
来格式化这个字符串以及时区缩写。比如"明天美国东部时间晚上7点"。现在它说"明天下午4点",因为我在太平洋标准时间。
这被证明是一个具有挑战性的问题。似乎只要你做time = moment("2015-09-08T19:05:00-0400")
,那么time
已经失去了所有的时区信息,因为日期被立即转换成我的本地时区。
我不喜欢使用moment-timezone,因为这个用例看起来非常简单。我正在考虑手动解析最后5位数字,并自己添加缩写,但这完全是一个hack。当然,一定有更好的方法来做到这一点。也就是说,这似乎引起了很多骚动。我错过什么了吗?
使用parseZone
函数将使生成的moment
对象保留所提供的偏移量,而不是使用本地时区。
moment.parseZone("2015-09-08T19:05:00-0400").calendar()
您还要求它返回时区缩写"EST"
,但这是不可能的。不能假设一个偏移量属于特定的时区,因为该偏移量可能由几个不同的时区使用,每个时区都有不同的缩写。