Java中日期格式化SimpleDateFormat類包含時區的處理方法


1.前言

需要把格式為“2017-02-23T08:04:02+01:00”轉化成”23-02-2017-T15:04:02“格式(中國時區為+08:00所以是15點),通過網上查找答案,發現沒有我需要的答案,最后我直接查看了java.text.SimpleDateFormat類的介紹,問題解決了。

2.格式所對應的表示方法如下

3.案例分析

3.1 格式若轉為或解析2017-02-23T08:04:02+01:00,樣例代碼如下: 

//2017-02-23T08:04:02+01:00
String changedTime = "2017-02-23T08:04:02+01:00"; 
String pattern = "dd-MM-yyyy-'T'HHmmss";
String pattern_ori = "yyyy-MM-dd'T'HH:mm:ssX";
SimpleDateFormat ft = new SimpleDateFormat(pattern);
SimpleDateFormat ft_ori = new SimpleDateFormat(pattern_ori);
    
String date = null;
try {
date = ft.format(ft_ori.parse(changedTime));
} catch (ParseException e) {
 // TODO Auto-generated catch block
e.printStackTrace();
}

3.2 格式若轉為22-Feb-2016-T010441,可以用“dd-MMM-yyyy-'T'hhmmss” 然后加上第二參數Locale.ENGLISH。 

//22-Feb-2016-T010441
Date date = new Date();
SimpleDateFormat sdf = new  SimpleDateFormat("dd-MMM-yyyy-'T'hhmmss",Locale.ENGLISH); 
String ret = sdf.format(date); //22-Feb-2016-T010441
SimpleDateFormat sdf2 = new  SimpleDateFormat("dd-MM-yyyy-'T'hhmmss",Locale.ENGLISH); 
String ret2 = sdf.format(date); //22-02-2016-T010441
SimpleDateFormat sdf3 = new  SimpleDateFormat("dd-MMM-yyyy-'T'hhmmss"); 
String ret3 = sdf.format(date); //22-二月-2016-T010441
SimpleDateFormat sdf3 = new  SimpleDateFormat("dd-MM-yyyy-'T'hhmmss"); 
String ret3 = sdf.format(date); //22-02-2016-T010441

 

4.總結

還是多看看API所提供的一手資料,SimpleDateFormat類的其它方法也是類似的。


免責聲明!

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



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