java - 如何使用 JodaTime 解析格式 "HHmm"的持续时间?

标签 java jodatime

我正在尝试将日期时间移动一个“HHmm”格式的持续时间,例如“0010”表示 10 分钟。

我找到了类似的票证( Parsing time strings like "1h 30min" ),但我无法使其正常工作。

代码如下:

PeriodFormatter hoursMinutes = new PeriodFormatterBuilder().appendHours().appendMinutes().toFormatter();
Duration duration = hoursMinutes.parsePeriod("0010").toStandardDuration();
duration.getStandardMinutes(); //Returns 600

由于某种原因,我得到了 600 分钟而不是 10 分钟。所以看起来分钟被解释为小时,但我不明白为什么。我已经尝试添加 .maximumParsedDigits(2) 几个小时,但结果是相同的。

为什么我的代码是错误的?还有其他方法来初始化持续时间解析器吗?我可以在哪里使用“HHmm”这样的标准格式吗?

最佳答案

所以问题实际上是最大解析数字。我只需在几小时前添加它,而不是几分钟。所以解决办法是这样的:

PeriodFormatter hoursMinutes =
                new PeriodFormatterBuilder().maximumParsedDigits(2).appendHours().appendMinutes().toFormatter();
Duration duration = hoursMinutes.parsePeriod("0010").toStandardDuration();
duration.getStandardMinutes(); //Returns 10

关于java - 如何使用 JodaTime 解析格式 "HHmm"的持续时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36424724/

相关文章:

java - Jackson Enum 格式,适用于您不拥有的格式

java - 我可以在 TreeSet 的构造函数中同时拥有 ArrayList 和 Comparator 吗?

java - 如何配置 log4j.properties 文件以打印进行日志记录的类的父类?

使用日历和线程安全的 Java ResultSet.getTimestamp

java - 使用 DateTime 将当前日期与另一个日期进行比较

java - 如何将 Joda-Time DateTime 转换为 java.util.Date ,反之亦然?

Java对象解构

java - 至少有两位小数的 BigDecimal

java - Joda-Time 剩余秒数?

Java Joda时间多日期格式代码优化