内容:
app开锁成功
Time:16年09月05日 15时58分46秒
app开箱失败
Time:16年09月05日 15时59分45秒
app开锁成功
Time:16年09月05日 15时57分40秒
这样的数据怎么进行根据年月日时分秒进行排序?
内容:
app开锁成功
Time:16年09月05日 15时58分46秒
app开箱失败
Time:16年09月05日 15时59分45秒
app开锁成功
Time:16年09月05日 15时57分40秒
这样的数据怎么进行根据年月日时分秒进行排序?
如果你说的是List中一条数据就是 “app开锁成功\nTime:16年09月05日 15时57分40秒”,
那么可以使用正则表达式匹配并提取时间,然后通过SimpleFormatDate将其转换为Calendar对象,
通过Calendar对象的before和after函数可以比较两个日期的先后。
String str="app开锁成功\nTime:16年09月05日 15时57分40秒";
Pattern pattern=Pattern.compile("(?<=Time:).+");
Matcher matcher=pattern.matcher(str);
if(matcher.find()){
System.out.println("提取的时间为:\t"+matcher.group());
}
将时间字符串转换为Calendar对象并比较时间先后:
String date = matcher.group();
//紧接前面的提取代码,这里的代码都是demo
System.out.println("提取的时间为:\t" + date);
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yy年MM月dd日 HH时mm分ss秒", Locale.getDefault());
try {
Date da = simpleDateFormat.parse(date);
Calendar calendar = Calendar.getInstance();
calendar.setTime(da);
Calendar another = Calendar.getInstance();
if (another.after(calendar)) {
System.out.println("今天(" + simpleDateFormat.format(another.getTime()) + ")在" + simpleDateFormat.format(calendar.getTime()) + "之后");
} else {
System.out.println("今天(" + simpleDateFormat.format(another.getTime()) + ")在" + simpleDateFormat.format(calendar.getTime()) + "之前");
}
} catch (ParseException e) {
e.printStackTrace();
}