我正在试图找出数学来验证班次是否得到正确的休息,当我查询api时,我得到以下回复:
If TimeValue(Worksheets("Individual_Stats").Cells(2, 14)) > TimeValue(Worksheets("PRT_Scores").Cells(3, 12)) Then
Range("A1").Interior.ColorIndex = 5
End If
我尝试过使用 "StartDate": "4/25/2018",
"EndTime": "8:30PM",
"StartDayNumber": 1,
"StartTime": "7:30PM",
"SegmentTypeName": "BREAK",
"EndDate": "4/25/2018",
"EndDayNumber": 1
的各种尝试,因此我可以使用函数LocalTime
:
Duration
我尝试过将EndTime和StartTime转换为本地时间的各种方法。但是我很难过我已经尝试过各种格式化程序,包括当天,小时但是我还没有找到包含上午/下午的示例,我是否需要先转换为24小时?
我得到的错误:
java.time.format.DateTimeParseException:无法在索引0处解析文本“1:00 PM”
答案 0 :(得分:2)
您只需修复DateTimeFormatter
即可。 “HH”是小时(0到23之间的值)。要解析上午/下午时间,您需要使用“hh”(上午/下午的时钟,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”,还有其他语言可以产生“am”之类的东西或其他一些字符串。