JAVA 持续时间

标签 java time duration

我有一个应用程序,我需要检查旅行的持续时间是否在 4 小时到 30 小时之间,我将其存储为字符串 "04:00""30:00 ",然后我尝试使用 LocalTime.parse() 对其进行解析,"04:00" 已成功解析,但 "30:00" 收到无效格式错误,从字符串中解析持续时间的最佳方法是什么?

最佳答案

首先,您以某种方式存储它是错误的。我建议以 Duration.parse 的方式存储它可以处理,标准 ISO 8601格式。

Examples:

    "PT20.345S" -- parses as "20.345 seconds"
    "PT15M"     -- parses as "15 minutes" (where a minute is 60 seconds)
    "PT10H"     -- parses as "10 hours" (where an hour is 3600 seconds)
    "P2D"       -- parses as "2 days" (where a day is 24 hours or 86400 seconds)
    "P2DT3H4M"  -- parses as "2 days, 3 hours and 4 minutes"
    "P-6H3M"    -- parses as "-6 hours and +3 minutes"
    "-P6H3M"    -- parses as "-6 hours and -3 minutes"
    "-P-6H+3M"  -- parses as "+6 hours and -3 minutes"

那么你可以这样做:

Duration dur30H = Duration.parse("PT30H"); // 30h
Duration dur4H = Duration.parse("PT4H"); // 4h
Duration travelTime = Duration.parse("P1D"); // 1D
boolean result = travelTime.compareTo(dur30H) <= 0 && travelTime.compareTo(dur4H) >= 0; // true

关于JAVA 持续时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40847045/

相关文章:

python - 如何在python中获取当前时间并分解为年、月、日、小时、分钟?

c++ - std::chrono::duration_cast 1 秒和 2 秒的奇怪结果

java - 2.2和4.1.2 SimpleDateFormat的区别?

java - 为什么 Java EE 版本与 Java SE 版本不匹配?

PHP time() 改变小时和秒而不是分钟?

c++ - 如何使用非常小的库或 native 代码 c/c++ 获取 MP3 文件(CBR 或 VBR)的持续时间?

html5-audio - HTML5 音频播放器持续时间显示 Nan

java - 如何在ubuntu中集成java和hive?

java - 使用具有透明图像的 Graphics.copyArea

javascript - 在 JavaScript 中计算日期