大家都知道Collections这个类是对字符串进行比较排序的,但是有时候给的日期不是很规范,所以只能统一规范日期,然后对其升序排序
好了,直接贴码
/**
* 由于Collections排序实际上是对字符串进行比较,然后对日期排序,但是有时候给的日期不是很规范,所以想把日期统一化,
* 这样用Collections进行升序排序
*
* @author Administrator
*
*/
public class MainActivity extends Activity {
private static final String TAG = "MainActivity";
@SuppressLint("SimpleDateFormat")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/**
* 原来的日期
*/
List<String> list = new ArrayList<String>();
list.add("2014-03-04 22:22:22");
list.add("2014-4-04 22:22:22");
list.add("2014-05-04 22:22:22");
list.add("2014-03-04 21:22:22");
list.add("2014-03-2 22:21:22");
list.add("2014-03-04 8:22:20");
list.add("2014-03-04 22:22:8");
list.add("2014-03-04 22:22:01");
list.add("2014-03-5 22:22:8");
SimpleDateFormat dateFormat = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");
List<String> list2 = new ArrayList<String>();
/**
* 格式化原来的日期,转换为:xxxx-xx-xx xx:xx:xx这样的格式,
*/
for (int i = 0; i < list.size(); i++) {
Date string;
try {
/**
* 转成标准日期
*/
string = dateFormat.parse(list.get(i).toString());
/**
* 格式化成自己设定类型
*/
String string2 = dateFormat.format(string);
Log.i("=======string===", i + "===" + string2);
/**
* 重新放入list集合
*/
list2.add(string2);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Collections.sort(list2);
Log.i(TAG, "=====最初的日期======" + list);
Log.i(TAG, "=====统一规范后,进行升序排序的日期======" + list2);
// Log.i("排序之前的list片段", "========" + list.toString());
// Collections.sort(list);
// SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
// Log.i("排序后的情况,22222,", "=========" + list.toString());
}
最后的结果是这样子的了