如何忽略系统时间强制使用特定时区?Luxon时区显示异常
Luxon转换EST时区显示GMT-5的问题解决
你的问题核心在于混淆了时区缩写和IANA标准时区标识符:
- 你使用的
EST是时区缩写,并非IANA标准时区。Luxon会将其解析为UTC-5的固定偏移时区,这类时区默认格式化时会显示为GMT-5,而非你期望的EST缩写。 - 真正对应北美东部地区的IANA标准时区是
America/New_York,它包含完整的夏令时规则,能自动切换EST/EDT,且格式化时会显示对应的时区缩写。
正确代码示例(适配夏令时)
如果你需要符合实际时区规则的北美东部时间:
luxon.DateTime.fromISO("2023-04-16T03:00:00Z").setZone("America/New_York").toFormat('ttt')
由于4月16日北美东部处于夏令时,输出会是10:00:00 PM EDT;若换成冬季日期(如1月1日),则会自动显示EST。
强制显示EST(忽略夏令时)
如果不需要夏令时适配,只想固定显示EST,可以手动指定格式化字符串:
luxon.DateTime.fromISO("2023-04-16T03:00:00Z").setZone("UTC-5").toFormat("hh:mm:ss a 'EST'")
输出为10:00:00 PM EST,但这种方式不会随季节自动调整时区偏移。
内容的提问来源于stack exchange,提问作者Matthew Pfister
相关产品推荐
相关产品推荐

