我正在尝试将日期时间移动一个“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/