Luxon DateTime.fromObject传入日期参数时忽略时区配置的问题
关于DateTime.fromObject时区偏移的问题
使用DateTime.fromObject方法时,仅传入时间参数(时、分、秒)能得到带正确时区偏移的结果;但同时传入年、月、日参数时,传入的zone参数会被忽略,默认使用UTC时区偏移。由于需要对比不同时区的时间,必须获取正确的时区偏移。
示例1:仅传入时间参数
DateTime.fromObject({ hour: 10, minute: 26, second: 6 }, { zone: "Europe/London" })
输出:2023-10-03T10:26:06.000+01:00(符合预期,包含伦敦时区的+01:00偏移)
示例2:传入日期+时间参数
DateTime.fromObject({ year: 2007, month: 12, day: 25, hour: 10, minute: 26, second: 6 }, { zone: "Europe/London" })
实际输出:2007-12-25T10:26:06.000+00:00(忽略传入的时区,默认使用UTC偏移)
预期输出:2007-12-25T10:26:06.000+01:00
额外测试:ISO字符串解析问题
尝试手动构造带时区的ISO字符串,使用DateTime.fromISO解析:
DateTime.fromISO("2007-12-25T10:26:06.000+01:00")
输出:2007-12-25T09:26:06.000+00:00(未保留原时区偏移,自动转换为UTC时间)
内容的提问来源于stack exchange,提问作者Stuart Cox
相关产品推荐
相关产品推荐

