【发布时间】:2018-09-04 09:54:15
【问题描述】:
我有一个日期:actDate,它的时间被提取为字符串timeFromAct
然后我有一个来自数据库的参考时间:timeValue,它被转换为字符串 timeFromDB
DateFormat formatTime;
formatTime = new SimpleDateFormat("HH:mm:ss");
Date actDate = actinfo.getActDate();
String timeFromAct = formatDay.format(actDate);
String date= ListOfConstants.SOME_DATE_REF;
ResultTable[] timeValue = RTManager.getSomethingDecodeList(date);
String timeFromDB = Arrays.toString(timeValue);
我知道将两者转换为字符串不会让我比较两次,但是
我想知道如何在 if 语句中比较这些时间值(类似于下面的比较)?
if (timeFromAct is greater than or equal to timeFromDB){
*some codes*
}
【问题讨论】:
-
如果两个字符串都是
HH:mm:ss格式,它们可以通过String的compareTo方法进行比较(如果您确实需要作为文本进行比较)。我更愿意将该字符串转换为LocalTime(左右),然后使用他们的compareTo进行比较 -
@weaver 我不相信
Date有compareTo(String)方法 -
@CarlosHeuberger 看到这个。 Date 有 compareTo 函数Date javadoc
-
我建议您避免使用
SimpleDateFormat和DateFormat类。它们不仅与Date一起已经过时了,而且出了名的麻烦。今天我们在java.time, the modern Java date and time API 的表现要好得多。 -
@drowny 并且根据该文档(以及它的 Java 10 版本),它的论点 不是
String,是吗?我明确地将其放在我的评论中,timeFromDB,正如@weaver 所建议的那样,恰好是String(问题的一部分)
标签: java database date time compare