gpt4 book ai didi

java - 解析时间字符串,如 "1h 30min"

转载 作者:IT老高 更新时间:2023-10-28 20:53:09 25 4
gpt4 key购买 nike

任何人都知道可以将时间字符串(例如“30min”或“2h 15min”或“2d 15h 30min”)解析为毫秒(或某种 Duration 对象)的 Java 库。 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 小时/小时、60 分钟/小时等来自己计算时间戳(在这种情况下,请利用DateTimeConstants 类来避免需要魔数(Magic Number)。)

关于java - 解析时间字符串,如 "1h 30min",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6403851/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com