① 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