一,问题描述
最近线上遇到一个bug,是因为joda日期转换问题。网上查了一下,是因为夏令时引起的。只有1940-06-03、1941-03-16、1986-05-04、1987-04-12、1988-04-10、1989-04-16、1990-04-15、1991-04-14几个时间会有如上错误抛出。
二,问题原因
new DateTime("1986-05-04")时未指定时区,导致无法找到该时间对应的时间戳。
三,解决方案
new DateTime("1986-05-04")时指定时区,如:new DateTime("1986-05-04", DateTimeZone.forID("+08:00"))