gpt4 book ai didi

java - 将字符串时间转换为本地时间以进行比较

转载 作者:行者123 更新时间:2023-12-02 02:11:00 24 4
gpt4 key购买 nike

我试图找出数学来验证类次是否得到正确的休息,当我查询 api 时,我得到以下响应:

    "StartDate": "4/25/2018",
"EndTime": "8:30PM",
"StartDayNumber": 1,
"StartTime": "7:30PM",
"SegmentTypeName": "BREAK",
"EndDate": "4/25/2018",
"EndDayNumber": 1

我尝试了各种使用 LocalTime 的尝试,因此我可以使用函数 Duration:

LocalTime start = LocalTime.parse(employeeShift.getJSONObject(ii).get("StartTime").toString(), DateTimeFormatter.ofPattern("HH:mm a"));
LocalTime end = LocalTime.parse(employeeShift.getJSONObject(ii).get("EndTime").toString());

我尝试了各种方法将 EndTime 和 StartTime 转换为本地时间。然而,我很困惑,我尝试了各种数量的格式化程序,包括日期、小时,但我没有找到包含 am/pm 的示例,我是否需要先转换为 24 小时时间?

我遇到的错误:

java.time.format.DateTimeParseException: Text '1:00PM' could not be parsed at index 0

最佳答案

您只需要修复您的DateTimeFormatter。 “HH”是一天中的小时(值从 0 到 23)。要解析 AM/PM 时间,您需要使用“hh”(am/pm 的时钟时间,值从 1 到 12 - check the javadoc )。另外,分钟和 AM/PM 部分之间没有空格,要解析一位数字的小时,您可以仅使用一个“h”(它将接受一位或两位数字,这似乎与您的输入匹配):

LocalTime.parse("7:30PM", DateTimeFormatter.ofPattern("h:mma", Locale.US));

我还使用了 java.util.Locale 因为 AM/PM 字符串已本地化,如果我不指定,将使用 JVM 默认值 - 尽管对于大多数区域设置“AM”使用“PM”时,还有其他语言可以生成诸如“a.m.”之类的内容。或其他一些字符串。

关于java - 将字符串时间转换为本地时间以进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50032223/

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