Parsing Jodatime宽限年表分析器重复计数
下面的Scala代码返回121000ms,而不是预期的61000ms。这也适用于其他字段(例如,一天中的小时数),似乎是由于两次重复计算超出范围的值造成的。《宽容年表》的文档和测试似乎没有对这种行为提供任何线索,因此我想知道是否有人知道或能够解释这种行为Parsing Jodatime宽限年表分析器重复计数,parsing,jodatime,Parsing,Jodatime,下面的Scala代码返回121000ms,而不是预期的61000ms。这也适用于其他字段(例如,一天中的小时数),似乎是由于两次重复计算超出范围的值造成的。《宽容年表》的文档和测试似乎没有对这种行为提供任何线索,因此我想知道是否有人知道或能够解释这种行为 import org.joda.time.chrono.{ISOChronology, LenientChronology} import org.joda.time.format.DateTimeFormatterBuilder val s
import org.joda.time.chrono.{ISOChronology, LenientChronology}
import org.joda.time.format.DateTimeFormatterBuilder
val secondNumber = "61"
val lenientChronology = LenientChronology.getInstance(ISOChronology.getInstanceUTC)
val lenientParser = new DateTimeFormatterBuilder()
.appendSecondOfMinute(1).toFormatter.withChronology(lenientChronology)
lenientParser.parseMillis(secondNumber)
我们也可以改用PeriodFormatterBuilder: 导入org.joda.time.format.PeriodFormatterBuilder
val小时分钟=
新PeriodFormatterBuilder().appendHours().appendLiteral(:“”)。appendMinutes().appendLiteral(:“”)。appendSeconds().toFormatter
val持续时间=小时分钟。解析周期(“40:50:23”)。到标准持续时间
持续时间.getMillis
它可以动态处理LenientChronology我们也可以使用PeriodFormatterBuilder: 导入org.joda.time.format.PeriodFormatterBuilder
val小时分钟=
新PeriodFormatterBuilder().appendHours().appendLiteral(:“”)。appendMinutes().appendLiteral(:“”)。appendSeconds().toFormatter
val持续时间=小时分钟。解析周期(“40:50:23”)。到标准持续时间
持续时间.getMillis
它在运行中处理时间顺序看起来像一个bug。我建议您在Joda issue tracker上提交一个问题,因为该项目仍处于维护模式(没有增强功能,但继续修复错误)。@MenoHochschild我提出的问题看起来像一个错误。我建议您在Joda issue tracker上提交一个问题,因为该项目仍处于维护模式(没有增强功能,但仍在继续修复错误)。@MenoHochschild我已提出