① android中怎麼排序日期和時間
時間排序,方法很多,以下提供幾種常用的方法。
轉化成long類型進行對比。
通過Collections.sort()方法進行排序。
【原理】
主要是通過把時間轉化成一些可以對比的數據類型進行排序對比。
【詳細方式或原理】
轉化成long類型進行對比
轉化代碼:
java">StringsDt="08/31/200621:08:00";
SimpleDateFormatsdf=newSimpleDateFormat("MM/dd/yyyyHH:mm:ss");
Datedt2=sdf.parse(sDt);
//繼續轉換得到秒數的long型
longlTime=dt2.getTime()/1000;
把需要對比的時間轉化成long類型進行對比。
2.通過Collections.sort()方法進行排序
Collections.sort()是java提供的官方排序方式。適合多類型排序。
詳細的對比代碼如下:
一般情況下要重寫下Comparator 介面。
importjava.util.Comparator;
{
@Override
publicintcompare(Objectlhs,Objectrhs){
//時間對比
numa=(num)lhs;
numb=(num)rhs;
return(b.getCount()-a.getCount());
}
}
然後在排序的地方進行使用
Comparatorcomp=newSortComparator();
Collections.sort(list,comp);
【最後】
如果數據類型復雜推薦使用方法二,如果類型簡單推薦使用方法一。
② android 時間格式化的問題
publicclassDateTest{
publicstaticvoidmain(String[]args){
Stringstr="2015-01-01T00:00:00+08:00";
//截取「T」前面的字元串
StringtestStr=str.split("T")[0];
StringformatStr="yyyyMMdd";
StringdateFromatStr="yyyy-MM-dd";
Stringdate=DateTest.StringToDate(testStr,dateFromatStr,formatStr);
}
/**
*字元串轉換到時間格式
*@paramdateStr需要轉換的字元串
*@returndateFormatStr需要轉換的字元串的時間格式
*@paramformatStr需要格式的目標字元串舉例yyyyMMdd
*@returnString返回轉換後的時間字元串
*@throwsParseException轉換異常
*/
(StringdateStr,StringdateFormatStr,StringformatStr){
DateFormatsdf=newSimpleDateFormat(dateFormatStr);
Datedate=null;
try{
date=sdf.parse(dateStr);
}catch(ParseExceptione){
e.printStackTrace();
}
SimpleDateFormats=newSimpleDateFormat(formatStr);
returns.format(date);
}
}
如果滿意的話,採納我的答案吧,謝謝。
③ 如何在android時區data中新增一個時區
Date date = new Date(1359641834000L);
System.out.println(date);
String dateStr = "2013-1-31 22:17:14";
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
dateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
try
{
// 對於已經設定為GMT時間標準的dateFormat來說,一切需要他轉換的字元串日期都是GMT標准時間,轉換後返回的Date由於默認遵守系統默認時區,所以轉換給Date的日期需要+8(例如北京標准時區),也就是時區與標准不同導致的時差。
Date dateTmp = dateFormat.parse(dateStr);
System.out.println(dateTmp);
}
catch (ParseException e)
{
e.printStackTrace();
}
// Date還是按系統默認時區,而format格式化處來的字元串是GMT,所以要-8。
String dateStrTmp = dateFormat.format(date);
System.out.println(dateStrTmp);
【加粗的代碼為設置時區的代碼】
備註:我也是遇到該問題,想查詢看到了您的問題,通過網路找到了相應的答案,為了尊重原創,我粘貼代碼來自:http://www.2cto.com/kf/201312/266908.html