如何从 JAVA 中的持续时间解析持续时间格式?
How to parse duration format from duration in JAVA?
我的持续时间格式类似于 0DT3H10M。所以需要知道如何解析这种数据。
我想要 0DT3H10M
的 0 天 3 小时 10 分钟
以特定格式。
我们可以通过一个工作正常的字符手动解析它,但是 android/java 中是否有任何其他方法或库可用于此?
持续时间
我猜这个字符串代表三个小时十分钟的持续时间。
不幸的是,该字符串不符合java.time类Duration
和[中默认使用的ISO 8601 standard =12=]。该标准以 P
开头所有此类字符串。并且该标准使用 T
将任何年-月-日与任何时-分-秒分开。所以你输入的三小时十分钟是 PT3H10M
.
您需要使用自己的代码来解析字符串。然后使用提取的值来设置 java.time.Duration
对象的值。
您可以简单地在前面加上 P
以符合标准。我之所以不愿意推荐这种方法,只是因为您需要查看可能收到的可能值的范围,以验证这种方法是否有效。
Duration.parse( "P" + "0DT3H10M" )
提示:就 ISO 8601 对输入数据的发布者进行教育。
我的持续时间格式类似于 0DT3H10M。所以需要知道如何解析这种数据。
我想要 0DT3H10M
的 0 天 3 小时 10 分钟以特定格式。
我们可以通过一个工作正常的字符手动解析它,但是 android/java 中是否有任何其他方法或库可用于此?
持续时间
我猜这个字符串代表三个小时十分钟的持续时间。
不幸的是,该字符串不符合java.time类Duration
和[中默认使用的ISO 8601 standard =12=]。该标准以 P
开头所有此类字符串。并且该标准使用 T
将任何年-月-日与任何时-分-秒分开。所以你输入的三小时十分钟是 PT3H10M
.
您需要使用自己的代码来解析字符串。然后使用提取的值来设置 java.time.Duration
对象的值。
您可以简单地在前面加上 P
以符合标准。我之所以不愿意推荐这种方法,只是因为您需要查看可能收到的可能值的范围,以验证这种方法是否有效。
Duration.parse( "P" + "0DT3H10M" )
提示:就 ISO 8601 对输入数据的发布者进行教育。