java中如何比较两个时间字符串的大小
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中如何比较两个时间字符串的大小相关的知识,希望对你有一定的参考价值。
比如:String str1 = "2010-07-16 12:00:00";String str2 = "2010-07-1512:00:00";
相比较str1 str2的大小或先后,有什么捷径吗?望高手指点。
另外一种思路:因为你这里是用的补全格式(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中两个字符串如何比较大小?
参考技术Aint1 int2 long t1="= result 20131011"Integer;SimpleDateFormat("
有三种方法实现
第一种直接用字符串类的compareTo方法; t1; int yyyyMMdd" result小于0; );  .parseInt(t2);int int1-int2;Date ; sdf;d1 SimpleDateFormat  .getTime();int result sdf;注;Integer:result等于0,则t1=t2.compareTo(t2);t2; ;Date = d2 = : t2=" d1.getTime()-d2;=
第二种是把这个日期字符串转换成long;=  .parse(t2); =  ;String t2: .parseInt(t1); result String int new ,则t1> sdf = ,则t1<
第三种是把日期字符串转换成整形int:result大于0.parse(t1);20131030" = 
一种思路:用 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中如何比较两个时间字符串的大小的主要内容,如果未能解决你的问题,请参考以下文章