Java 使用以下格式比较两个日期yyyy:MM:dd hh:MM:ss

Java 使用以下格式比较两个日期yyyy:MM:dd hh:MM:ss,java,date,Java,Date,我需要比较两个日期和时间部分 我只需要检查hh:mm:ss 有人能建议我使用什么工具吗?或者有人能建议我用什么方法编程吗 谢谢 Narendra您可以使用java.text.simpleDataFormat将日期解析为Date对象,然后使用getTime进行比较Date还实现了Compariable,因此如果愿意,您可以直接使用它。您可以使用java.text.SimpleDateFormat将日期解析为Date对象,然后使用getTime进行比较Date还实现了compariable,因此如果

我需要比较两个日期和时间部分

我只需要检查hh:mm:ss

有人能建议我使用什么工具吗?或者有人能建议我用什么方法编程吗

谢谢


Narendra

您可以使用
java.text.simpleDataFormat
将日期解析为
Date
对象,然后使用
getTime
进行比较
Date
还实现了
Compariable
,因此如果愿意,您可以直接使用它。

您可以使用
java.text.SimpleDateFormat
将日期解析为
Date
对象,然后使用
getTime
进行比较
Date
还实现了
compariable
,因此如果愿意,您可以直接使用它。

您可以使用字符串比较,例如:
“2010:01:01 00:00:01”。comparieto(“2010:01:01 00:02”)
。当第一个日期分别在第二个日期之前、相同或之后时,将返回-1、0或1

如果您有可用的
Date
Calendar
对象,则可以使用
Calendar.before(Date)
Calendar.after(Date)
方法比较日期,但这将考虑毫秒,因此在比较之前必须小心将毫秒重置为0


如果性能对您来说不是那么重要,我建议您使用上面的字符串比较。

您可以使用字符串比较,例如:
“2010:01:01 00:00:01”。比较到(“2010:01:01 00:02”)
。当第一个日期分别在第二个日期之前、相同或之后时,将返回-1、0或1

如果您有可用的
Date
Calendar
对象,则可以使用
Calendar.before(Date)
Calendar.after(Date)
方法比较日期,但这将考虑毫秒,因此在比较之前必须小心将毫秒重置为0


如果性能对您来说不是那么重要,我建议您在上面进行字符串比较。

要仅比较日期部分,最简单的方法是

 int cmp = date1.substring(0, 10).compareTo(date2.substring(0,10));
您不需要将它们转换为true date对象,因为字符串的顺序相同。这就像@rodion的答案,只是他的答案也会比较时间


如果性能对您很重要,我建议您将字符串保留为字符串,将它们转换为日期对象相对来说比较昂贵。

要仅比较日期部分,最简单的方法是

 int cmp = date1.substring(0, 10).compareTo(date2.substring(0,10));
您不需要将它们转换为true date对象,因为字符串的顺序相同。这就像@rodion的答案,只是他的答案也会比较时间


如果性能对您很重要,我建议您将字符串保留为字符串,将其转换为日期对象相对比较昂贵。

“比较”==之前/之后或日期差异?“比较”==之前/之后或日期差异?字符串比较有效,因为格式的每个部分(年、月、日等)都有固定的位数并将它们从高到低排列。@Narendra:对不起,我以为你的意思是高到包括hh:mm:ss。根据您的需要使用@Peter Lawrey的答案。字符串比较是有效的,因为该格式的每个部分(年、月、日等)都有固定的位数,并按从高到低的顺序排列。@Narendra:对不起,我以为您的意思是最多包括hh:mm:ss。根据您的需要使用@Peter Lawrey的答案。如何在javascript中做到这一点?如何在javascript中做到这一点?