【发布时间】:2017-11-15 20:01:15
【问题描述】:
所以我们有多个客户,它们位于多个时区。我正在从 API 中提取一些日期,而这个字符串中的日期/时间正是我需要显示的。我一直在研究这个,并且挖掘了一段时间,但仍然没有想出一个明确的答案。传入的字符串格式如下:
"2017-12-29T20:00:00"
我想要的是将日期和时间按原样提取到两个字符串中(没有时区偏移,无论查看器位于何处),但是这样做有一些问题。也希望以正确的方式格式化它。示例:
"M/d/yyyy"
"hh:mm AM/PM" (12 hour)
我已经尝试了很多方法来解决这个问题,并且真的不想只抓取子字符串,但我有一半想这样做。任何帮助表示赞赏。
【问题讨论】:
-
你考虑过使用momentjs吗? moment.format() 将使这成为一项简单的任务。否则,我宁愿获取子字符串,也不愿尝试使用内置的 javascript getHour、getMinute 等函数来构建它。
-
@cstricklan - 如果我把它放到 moment.format() 中,它会自动偏移任何时区吗?还是会保留字符串中提供的时间/日期?
-
字符串
"2017-12-29T20:00:00"不包含时区信息。是的,调用moment("2017-12-29T20:00:00")会在本地时区创建 20:00 的时刻对象,但这也是 format() 函数用来创建字符串的时区,所以它会保持在晚上 10:00。 -
始终使用 UTC 方法。
标签: javascript date iso8601