我在2018年12 月 7 日运行以下表达式。
我看到了一个差异:
ZonedDateTime.now(ZoneId.of("America/New_York")).minusDays(30)
返回(正确):
2018-11-07T22:44:11.242576-05:00[America/New_York]
而转换为瞬间:
ZonedDateTime.now(ZoneId.of("America/New_York")).minusDays(30).toInstant()
似乎通过添加额外的一天来弄乱结果:
2018-11-08T03:58:01.724728Z
我需要立即转换以在以下代码中使用其结果作为日期:
... = Date.from(t.toInstant())
等效的 Python 代码 (Django) 可以正常工作:
datetime.datetime.now('America/New_York')+datetime.timedelta(days=-30)
评估为: datetime: 2018-11-07 20:13:55.063888-05:00
造成差异的原因是什么?
我应该使用什么来使 Java 转换为 Date 导致返回11 月 7 日,就像在 Python 的情况下一样?基本上,我正在寻找该 Python 代码到 Java 或伪代码的等效翻译:
`datetime.X = datetime.now(deployment_zone) - (N_days)`,
where `deployment_zone` is configurable (i.e. `America/New_York`)
`N_days` is configurable (i.e. 30)
POPMUISE
相关分类