java字符串日期排序比较问题11
发布网友
发布时间:2023-10-31 16:33
我来回答
共4个回答
热心网友
时间:2024-08-05 12:37
排序么?
import java.text.Format;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.List;
public class Test {
public static void main(String args[]) {
System.out.println("字符串比较");
test1();
System.out.println("Date比较");
test2();
}
private static void test1() {
List<String> data = init();
System.out.println("排序前" + data);
Collections.sort(data, new Comparator<String>() {
public int compare(String o1, String o2) {
String[] arr1 = o1.split("_");
String[] arr2 = o2.split("_");
int comparator = toInt(arr1[0], -1) - toInt(arr2[0], -2);
if (comparator == 0) {
comparator = toInt(arr1[1], -1) - toInt(arr2[1], -2);
if (comparator == 0) {
return toInt(arr1[2], -1) - toInt(arr2[2], -2);
}
}
return comparator;
}
});
System.out.println("排序后" + data);
}
private static void test2() {
List<String> data = init();
System.out.println("排序前" + data);
final Format f = new SimpleDateFormat("yyyy-MM-dd");
Collections.sort(data, new Comparator<String>() {
public int compare(String o1, String o2) {
Date d1;
Date d2;
try {
d1 = (Date) f.parseObject(o1);
d2 = (Date) f.parseObject(o2);
return d1.compareTo(d2);
} catch (Exception e) {
e.printStackTrace();
}
return 0;
}
});
System.out.println("排序后" + data);
}
private static List<String> init() {
List<String> data = new ArrayList<String>();
data.add("2013-3-3");
data.add("2012-4-4");
return data;
}
private static int toInt(String str, int delVal) {
try {
return Integer.parseInt(str);
} catch (Exception e) {
return delVal;
}
}
}
字符串比较
排序前[2013-3-3, 2012-4-4]
排序后[2012-4-4, 2013-3-3]
Date比较
排序前[2013-3-3, 2012-4-4]
排序后[2012-4-4, 2013-3-3]
热心网友
时间:2024-08-05 12:32
格式一样的自己比较字符串即可
热心网友
时间:2024-08-05 12:37
package com.zz;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
public class Demo4 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String s1 = "2012-4-4";
String s2 = "2013-3-3";
Demo4 demo4 = new Demo4();
int result = demo4.compare(s1, s2);
System.out.println(result);
}
public int compare(String s1, String s2) {
boolean flag = false;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-mm-dd",
Locale.CHINA);
try {
Date d1 = simpleDateFormat.parse(s1);
Date d2 = simpleDateFormat.parse(s2);
if (d1.getTime() > d2.getTime()) {
flag = true;
}
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (flag) {
return 1;
} else {
return -1;
}
}
}
ps:split就不要用了。这是在自虐。
热心网友
时间:2024-08-05 12:37
SimpleDateFormat 转成Date
Date.before(Date)
Date.after(Date)
import java.util.*;
import java.text.SimpleDateFormat;
import java.text.ParseException;
public class DateCompare{
public static void main(String [] argv)throws ParseException{
String s1="2012-4-4";
String s2="2013-3-3";
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-M-d");
Date d1=fmt.parse(s1);
Date d2=fmt.parse(s2);
if(d2.after(d1)){
System.out.println(s2+">"+s1);
}else{
System.out.println(s2+"!>"+s1);
}
}
}