位置:首页 » 文章/教程分享 » Java中日期格式化SimpleDateFormat类包含时区的处理方法
1.前言

需要把格式为“2018-07-13T08:04:02+01:00”转化成“13-07-2018-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