【发布时间】:2015-03-20 21:12:22
【问题描述】:
我需要将字符串转换为 Joda Time DateTime 值。字符串表示包含日、月、小时和分钟,但没有年。
我该怎么做?
我尝试了类似DateTimeFormat.forPattern("dd.MM HH:mm").parseDateTime("26.03 02:50") 的方法,但出现以下异常:
org.joda.time.IllegalInstantException: Cannot parse "26.03 02:50": Illegal instant due to time zone offset transition (Europe/Moscow)
at org.joda.time.format.DateTimeParserBucket.computeMillis(DateTimeParserBucket.java:471)
at org.joda.time.format.DateTimeParserBucket.computeMillis(DateTimeParserBucket.java:440)
at org.joda.time.format.DateTimeParserBucket.computeMillis(DateTimeParserBucket.java:411)
at org.joda.time.format.DateTimeFormatter.parseDateTime(DateTimeFormatter.java:882)
【问题讨论】:
-
DateTime应该包含日期,并且任何日期都包含year。没有年份就不可能有抽象日期。所以,我认为答案是:没有办法。 -
@Andremoniy 总有一种解决方法。我很确定我不是第一个必须处理无年份日期表示的人。
-
你的意思是应该用当年的吗?
-
@SergeyPauk 我需要一个有或没有年份的
DateTime对象。在下一步中,我确定年份并将设置该对象的年份(已经有一个例程,可以计算正确的年份)。 -
为什么不提前解决年份并将其添加到日期字符串中?