Java 使用 LocalTime 比较没有日期的时间 class
Java compare times without dates using LocalTime class
我正在获取交货时间的 CSV 文件(未排序),我需要按时间对它们进行排序才能使用数据。
我将必要的信息存储在我的 roadDataToBeSorted 数据结构中的 LinkedList 中,该结构由 3 个字符串组成:rdName、rdZipCode 和 rdDeliveryTime。到目前为止,我的研究表明使用 LocalTime class 因为我在 rdDeliveryTime 中的时间格式是 HH:MM:SS.
我不确定如何将我的字符串转换为 LocalTime 对象,然后我可以使用 .isBefore() 函数对我的数据进行排序。
for (int i = 0; i < stopOrderByDeliveryTime.size() - 1; i++) {
if (LocalTime(stopOrderByDeliveryTime.get(i).rdDeliveryTime).isBefore(LocalTime(stopOrderByDeliveryTime.get(i+1).rdDeliveryTime))) {
// add element at index (it is earlier than later elements)
} else {
// add element to end since it is later than all prior elements
}
}
为了解析时间,使用LocalTime
from Java 8.如果你的格式是HH:MM:SS
你可以使用:
String timeString = "11:10:33";
LocalTime iaka = LocalTime.parse(timeString,
DateTimeFormatter.ISO_LOCAL_TIME);
ISO_LOCAL_TIME
由 Java 提供。
但是,如果您的时间不是 ISO 标准,假设您需要解析:"hours-minutes:seconds.milis" 那么您将需要创建自己的格式化程序并将其传递给 LocalTime.parse
:
String timeString2 = "11-10:33.223";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH-mm:ss.nnn");
System.out.println(LocalTime.parse(timeString2, formatter));
有关如何自定义的更多信息DateTimeFormatter.ofPattern
请查看官方 java 文档:https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html
我正在获取交货时间的 CSV 文件(未排序),我需要按时间对它们进行排序才能使用数据。
我将必要的信息存储在我的 roadDataToBeSorted 数据结构中的 LinkedList 中,该结构由 3 个字符串组成:rdName、rdZipCode 和 rdDeliveryTime。到目前为止,我的研究表明使用 LocalTime class 因为我在 rdDeliveryTime 中的时间格式是 HH:MM:SS.
我不确定如何将我的字符串转换为 LocalTime 对象,然后我可以使用 .isBefore() 函数对我的数据进行排序。
for (int i = 0; i < stopOrderByDeliveryTime.size() - 1; i++) {
if (LocalTime(stopOrderByDeliveryTime.get(i).rdDeliveryTime).isBefore(LocalTime(stopOrderByDeliveryTime.get(i+1).rdDeliveryTime))) {
// add element at index (it is earlier than later elements)
} else {
// add element to end since it is later than all prior elements
}
}
为了解析时间,使用LocalTime
from Java 8.如果你的格式是HH:MM:SS
你可以使用:
String timeString = "11:10:33";
LocalTime iaka = LocalTime.parse(timeString,
DateTimeFormatter.ISO_LOCAL_TIME);
ISO_LOCAL_TIME
由 Java 提供。
但是,如果您的时间不是 ISO 标准,假设您需要解析:"hours-minutes:seconds.milis" 那么您将需要创建自己的格式化程序并将其传递给 LocalTime.parse
:
String timeString2 = "11-10:33.223";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH-mm:ss.nnn");
System.out.println(LocalTime.parse(timeString2, formatter));
有关如何自定义的更多信息DateTimeFormatter.ofPattern
请查看官方 java 文档:https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html