Java Jodatime非法安装例外
关于这个片段,我已经尝试了几乎所有的方法,但仍然得到了非法的安装例外Java Jodatime非法安装例外,java,android,datetime,jodatime,android-jodatime,Java,Android,Datetime,Jodatime,Android Jodatime,关于这个片段,我已经尝试了几乎所有的方法,但仍然得到了非法的安装例外 public int getDateDay() { DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd"); DateTime dt; try { dt = formatter.parseDateTime(date); } catch (IllegalInstantException e) {
public int getDateDay() {
DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd");
DateTime dt;
try {
dt = formatter.parseDateTime(date);
} catch (IllegalInstantException e) {
dt = formatter.parseLocalDateTime(date).toDateTime();
}
return dt.getDayOfMonth();
}
致命异常:org.joda.time.IllegalInstantException非法即时
由于时区偏移转换(夏令时“间隙”):
2018-10-21T00:00:00.000(美国/圣保罗)键盘箭头向上
arrow_right org.joda.time.chrono.ZonedChronology.localToUTC
(ZonedChronology.java:157)
org.joda.time.chrono.ZonedChronology.getDateTimeMillis
(ZonedTimeology.java:122)
org.joda.time.chrono.AssembledChronoloy.getDateTimeMillis
(AssembledChronology.java:133)org.joda.time.base.BaseDateTime。
(BaseDateTime.java:257)org.joda.time.DateTime。(DateTime.java:532)
org.joda.time.LocalDateTime.toDateTime(LocalDateTime.java:750)
org.joda.time.LocalDateTime.toDateTime(LocalDateTime.java:731)
似乎输入的日期无效。这个问题已经在这篇文章中讨论过了 原因: Joda Time只允许键类存储有效的日期时间。对于 例如,2月31日不是有效日期,因此无法存储 (部分除外) 有效日期时间的相同原则也适用于夏令时 时间(DST)。在许多地方使用DST,本地时钟移动 春天前进一个小时,秋天后退一个小时。这 这意味着在春天,有一个“间隙”,当地时间没有 存在 错误“由于时区偏移转换导致的非法瞬间”指 填补这一空白这意味着您的应用程序试图创建 间隔内的日期时间-自Joda time以来不存在的时间。 对象必须有效,这是不允许的 可能的解决办法如下:
- 使用LocalDateTime,因为所有本地日期时间都有效
- 将LocalDate转换为DateTime时,请使用toDateTimeAsStartOfDay()处理和管理任何间隙
- 解析时,如果要解析的字符串没有时区,请使用parseLocalDateTime()
什么是日期?