关于Time的字符串,如何比较时间

从一个文本中提取出时间的字符串,分别为:
2012-06-09 23:08
2012-01-22 21:14
2012-01-01 23:12
2012-01-01 00:26
2012-01-01 05:08
2012-08-20 18:27
那么该如何比较这些时间的大小呢?最简单的方法想到的是,把字符串中的中英文字母和空格全部剔除掉,然后转化成int型数据进行大小判断:
private static long timeConvert(String sendTimeStr) {
//去掉中英文字符
   String timeStr = sendTimeStr.replaceAll(“[\\p{Punct}\\s+\\pP]+”, “”);
   long timeInt = Integer.parseInt(timeStr);
   return timeInt;
 }

但是此时运行出错,发现了一个新的问题就是,已经精确到分的时间转化int型时例201206092308已经超出了int型的范围。那么考虑调用Date库进行比对,那么需要把字符串都转化为Date型数据:
import java.util.Date;
import java.text.ParseException;
import java.text.SimpleDateFormat;

public static Date StringToDate(String s){
    Date time=new Date();
    SimpleDateFormat sd=new SimpleDateFormat(“yyyy-MM-dd HH:mm”);
    try{
        time=sd.parse(s);
    }
    catch (ParseException e) {
        System.out.println(“输入的日期格式有误!”);
    }
    return time;
}

然后利用Date型数据进行时间比对:
1,FormatDate转换成字符串比较
2,利用Date类的方法getTime() 得到long类型的值进行比较
3,利用Date 的方法
boolean after(Date when)
测试此日期是否在指定日期之后。
boolean before(Date when)
测试此日期是否在指定日期之前。
boolean equals(Object obj)
比较两个日期的相等性。
最好使用第3种方法进行比对。

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>