我试图比较两个不同的时间,看看哪一个出现在另一个之前,但是我遇到了一个else if语句来比较它们的后缀(am和pm)并输出命令时遇到了麻烦第一次相对于另一次。
编辑:suffix1和suffix2的日期类型是字符串,time1和time2的数据类型是int
到目前为止,我有一段代码可以检查周期是否相等:
if (suffix1.equals(suffix2))
{
if (time1 > time2)
{
System.out.print("After");
}
.....
}
有没有办法看到哪些时候'后缀来自另一个?
答案 0 :(得分:1)
我认为你是在追求以下内容:
String timeString1 = "2:00 PM";
String timeString2 = "9:00 AM";
DateTimeFormatter timeFormatParser
= DateTimeFormatter.ofPattern("h:mm a", Locale.ENGLISH);
LocalTime time1 = LocalTime.parse(timeString1, timeFormatParser);
LocalTime time2 = LocalTime.parse(timeString2, timeFormatParser);
if (time1.isAfter(time2)) {
System.out.println("After");
}
使用我的示例中的字符串,代码会打印After
。如果您的原始时间字符串具有不同的格式,我希望您可以相应地修改格式模式字符串,否则请在注释中进行跟进。或者更好,编辑您的问题以精确指定您的字符串。您可以使用的字母为documented here。请注意格式模式区分大小写。
我的DateTimeFormatter
期望AM
或PM
为大写。如果您的字符串使用小写字母,则有几个选项:
timeString1 = timeString1.toUpperCase(Locale.ENGLISH);
,同样适用于timeString2
。DateTimeFormatterBuilder
构建不区分大小写的DateTimeFormatter
。 PS在2014年我使用的现代Java日期和时间API出现之前,人们通常会使用名为SimpleDateFormat
的类来解析Date
对象。如今远离那个。较新的课程表现出更好的工作和更多的程序员友好。
答案 1 :(得分:0)
使用日期表示申请时间:https://docs.oracle.com/javase/8/docs/api/java/util/Date.html
字符串表示只应在显示时间时使用。
使用日期时,您可以将其与myDate.compareTo(anotherDate)
进行比较。
您可以按照您想要的任何形式打印日期,方法如下:Change date format in a Java string