java中如何比较两个时间字符串的大小

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中如何比较两个时间字符串的大小相关的知识,希望对你有一定的参考价值。

比如:String str1 = "2010-07-16 12:00:00";String str2 = "2010-07-1512:00:00";
相比较str1 str2的大小或先后,有什么捷径吗?望高手指点。

一种思路:用 SimpleDateFormat 来处理,可以转成long形式的,那是1970年1月1日起到现在的毫秒数。可以直接比大小了。

另外一种思路:因为你这里是用的补全格式(7月写成了07),那么可以直接字面转了比较
public static void main(String[] _s)
String str1 = "2010-07-16 12:00:00";
long longstr1 = Long.valueOf(str1.replaceAll("[-\\s:]",""));
System.out.println(longstr1);

这个结果是20100716120000,就这个意思,直接字面转成long形式后比
参考技术A 如果保证两个字符串格式一样,且都是用上面的形式表示的(即是2010-07-16 13:01:01,而不是2007-7-16 1:1:1),这样,可以直接用字符串比较就可以了:
if (str1.compareTo(str2)>0)
第一个大于(晚于)第二个
else
反过来


不然,得用SimpleDateFormat转换成日期型再判断。
参考技术B 转换成日期型,再比较就OK了 参考技术C 非常实用
DateTime str1date = new DateTime(str1,DateTime.YEAR_TO_DAY);
DateTime str2date = new DateTime(str2,DateTime.YEAR_TO_DAY);

if (str1date.before(str2date))
--表示str1date小于str2date
else
--反之

java中两个字符串如何比较大小?

参考技术A

int1 int2  long t1="= result 20131011"Integer;SimpleDateFormat("

有三种方法实现

第一种直接用字符串类的compareTo方法; t1; int yyyyMMdd" result小于0; ); &nbsp.parseInt(t2);int int1-int2;Date   sdf;d1 SimpleDateFormat &nbsp.getTime();int result sdf;注;Integer:result等于0,则t1=t2.compareTo(t2);t2; ;Date = d2 =&nbsp: t2=" d1.getTime()-d2;= 

第二种是把这个日期字符串转换成long;= &nbsp.parse(t2);   = &nbsp;String t2:&nbsp.parseInt(t1); result  String int new ,则t1> sdf =&nbsp,则t1<

第三种是把日期字符串转换成整形int:result大于0.parse(t1);20131030" =&nbsp

一种思路:用 SimpleDateFormat 来处理,可以转成long形式的,那是1970年1月1日起到现在的毫秒数。可以直接比大小了。另外一种思路:因为你这里是用的补全格式(7月写成了07),那么可以直接字面转了比较 public static void main(String[] _s) String str1 = "2010-07-16 12:00:00"; long longstr1 = Long.valueOf(str1.replaceAll("[-\\\\s:]","")); System.out.println(longstr1); 这个结果是20100716120000,就这个意思,直接字面转成long形式后比。

以上是关于java中如何比较两个时间字符串的大小的主要内容,如果未能解决你的问题,请参考以下文章

java中两个字符串如何比较大小?

JS 如何比较时间大小?

java中两个字符串如何比较大小

java中两个字符串如何比较大小

java中怎么比较两个日期的大小

java 中字符串 怎么比较大小