關於日期格式化字符串


 2012-09-20T09:37:33.000Z 這種格式

SimpleDateFormat formatter, FORMATTER;
formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.sss'Z'");
String oldDate = "2012-09-20T09:37:33.000Z";
Date date;
try {
date = formatter.parse(oldDate.substring(0, 24));
FORMATTER = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss.SSS");
System.out.println("OldDate-->"+oldDate);
System.out.println("NewDate-->"+FORMATTER.format(date));
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

 

新浪微博返回的時間都是,帶有時區的GMT時間,平時使用慣了中國的時間表示格式,GMT時間轉換一時無從下手。找了好一會兒,終於找到了對應的時間格式化字符串:

Tue May 31 17:46:55 +0800 2011  

對應:

EEE MMM d HH:mm:ss Z yyyy  

Java例子
// TODO Auto-generated method stub
SimpleDateFormat format = new SimpleDateFormat(
"EEE MMM d HH:mm:ss Z yyyy",Locale.US);

SimpleDateFormat format2 = new SimpleDateFormat(
"EEE MMM d HH:mm:ss Z yyyy",Locale.CHINA);
SimpleDateFormat format1 = new SimpleDateFormat("yyyy MM dd hh:mm:ss");
System.out.println(format.format(new Date()));
try {
System.out.println(format1.format(format2
.parse("星期四 九月 20 16:18:39 +0800 2012")));
System.out.println(format1.format(format
.parse("Thu Sep 20 15:42:06 +0800 2012")));
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

 

ios解析補充:

如果你在iOS中解析新浪微博的日期格式,只是設置NSDateFormatter實例的dateFormat屬性為上面的格式化字符串。在模擬器(前提是模擬器的“設置”->“多語言環境”->“英國/美國”)下是能夠實現解析的,但是在真機調試時,卻無法解析。

那是因為在中國地區的,操作系統的環境一般都是“中國”、“中國香港”、“中國澳門等”,而上面的這種格式化字符串只針對英文操作系統的環境下才有效。

所以為了保證在任何設置下都能解析,我們需要對NSDateFormatter實例的locale屬性進行設置(強制采用“en-US”的方式進行轉換):

示例:

  1. //解析新浪微博中的日期  
  2. + (NSString*)resolveSinaWeiboDate:(NSString*)date{  
  3.     NSDateFormatter *iosDateFormater=[[[NSDateFormatter alloc]init]autorelease];  
  4.     iosDateFormater.dateFormat=@"EEE MMM d HH:mm:ss Z yyyy";  
  5.     //必須設置,否則無法解析  
  6.     iosDateFormater.locale=[[[NSLocale alloc]initWithLocaleIdentifier:@"en_US"]autorelease];  
  7.     NSDate *date=[iosDateFormater dateFromString:date];  
  8.       
  9.     //目的格式  
  10.     NSDateFormatter *resultFormatter=[[[NSDateFormatter alloc]init]autorelease];  
  11.     [resultFormatter setDateFormat:@"MM月dd日 HH:mm"];  
  12.       
  13.     return [GlobalInstance NSDateToNSString:date withFormatter:resultFormatter];  
  14. }  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM