任何人都知道 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
如果您需要使其更加灵活,则可以使用参数。
Update:乔达时间已添加Period.toStandardDuration() http://joda-time.sourceforge.net/api-release/org/joda/time/Period.html#toStandardDuration(),从那里你可以使用getStandardSeconds() http://joda-time.sourceforge.net/api-release/org/joda/time/Duration.html#getStandardSeconds()获取经过的时间(以秒为单位)long
.
如果您使用的是没有这些方法的旧版本,您仍然可以通过假设一天中的标准 24/小时、60 分钟/小时等自行计算时间戳。(在这种情况下,请利用DateTimeConstants
类以避免需要幻数。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)