我正在创建一个将由Javascript框架使用的Rails API。时间显示和操作将由MomentJS控制。前端能够显示日期以及时区缩写(例如1/1/2010 11:00 PST
)非常重要。
根据我的理解,偏移(例如-0700
)不足以确定实际时区,而时区缩写并不总是唯一的。
我只想到两个选项来解决这个问题:
{ pick_up: "17-06-08T18:59:21.215Z", pick_up_tz: 'America/New_York' }
(或pick_up_tz: 'PST'
){ pick_up: "17/09/06 13:34:00 CDT -05:00"
)这些合理的解决方案还是有更好的方法?
答案 0 :(得分:1)
使用非标准日期时间格式
永远不要这样做。 API应始终以ISO 8601返回时间。
以UTC格式返回所有时间,每次指定时区时都有一个额外字段
您是正确的,偏移量不足以识别时区,因此您需要将其包含在API响应中,最好是IANA time zone。
您是否转换为UTC或包含偏移是优先考虑的事项;无论您转换为显示的时区,2017-06-08T18:59:21.215Z
和2017-06-08T11:59:21.215-0700
都意味着同一时间。包括偏移量可用于识别存储的偏移量是否与时区不同,因为如果偏移量不同,您可能只显示时区限定符。