我的持续时间字符串如下所示:
1:16.352
其中 1
是分钟部分,16
是秒部分,352
是毫秒部分。
我想使用 Duration.fromISOTime
但我得到:
{
"reason": "unparsable",
"explanation": "the input \"1:16.352\" can't be parsed as ISO 8601"
}
在 Luxon 中是否有一种清晰的方法来解析这种持续时间?
最佳答案
Duration.fromISOTime
不起作用,因为 1:16.352
不是 ISO 8601 时间字符串,缺少小时部分(参见 I SO 8601 Times )。
构建 Luxon Duration
对象的解决方法如下:
const DateTime = luxon.DateTime;
const Duration = luxon.Duration;
const startOfHour = DateTime.local().startOf('hour').toMillis();
const dt = DateTime.fromFormat("1:16.352", "m:ss.SSS"). toMillis();
const dur = Duration.fromMillis(dt - startOfHour);
console.log(dur.toFormat("m 'minute' s 'second' S 'millis'"));
<script src="https://cdn.jsdelivr.net/npm/luxon@1.26.0/build/global/luxon.js"></script>
关于javascript - 在 Luxon 中像持续时间一样解析 ISO 8601,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66258241/