我有一个类似于0DT3H10M的持续时间格式。所以需要知道如何解析这种数据。
我想从0DT3H10M获得0天3小时10分钟
以特定的格式。
我们可以通过一个正常工作的字符来手动解析它,但是在android/java中有没有其他的方法或库可以用来解析它呢?
发布于 2019-03-08 00:27:36
持续时间
我猜这个字符串代表3小时10分钟的持续时间。
不幸的是,该字符串不符合java.time类Duration
和Period
中默认使用的ISO 8601 standard 。标准以P
开始所有这样的字符串。该标准使用T
将任何年、月、日与小时、分钟、秒分开。因此,您输入的3小时10分钟将是PT3H10M
。
你需要用你自己的代码来解析这个字符串。然后使用提取的值设置java.time.Duration
对象的值。
您只需添加一个符合标准的P
,就可以逃脱惩罚。我不太愿意推荐这个方法,因为您需要查看可能收到的值的范围,以验证此方法是否有效。
Duration.parse( "P" + "0DT3H10M" )
提示:对输入数据的发布者进行有关ISO 8601的培训。
https://stackoverflow.com/questions/55047582
复制相似问题