解析时间字符串,例如“ 1h 30min”
众所周知的Java库可以将时间字符串(例如“ 30min”或“ 2h 15min”或“ 2d 15h
30min”)解析为毫秒(或某种Duration对象)。Joda-Time可以做这样的事情吗?
(我维护这种方法的方法很丑陋,并且想摆脱它/将其替换为性能更好的方法。)
回答:
您可能需要针对自己的格式进行一些调整,但可以尝试以下方法:
PeriodFormatter formatter = new PeriodFormatterBuilder() .appendDays().appendSuffix("d ")
.appendHours().appendSuffix("h ")
.appendMinutes().appendSuffix("min")
.toFormatter();
Period p = formatter.parsePeriod("2d 5h 30min");
请注意,如果需要使参数更灵活appendSuffix
,可以使用带variants
参数的参数。
:Joda Time已添加Period.toStandardDuration()
,并且您可以从那里getStandardSeconds()
以秒为单位获取经过时间long
。
如果您使用的是没有这些方法的旧版本,则仍可以通过假设一天中的标准24 / hr,60min /
hr等来自己计算时间戳。(在这种情况下,请利用DateTimeConstants
该类中的常量来避免需要魔术数字。)
以上是 解析时间字符串,例如“ 1h 30min” 的全部内容, 来源链接: utcz.com/qa/413302.html