java带时区时间格式_Java中日期格式化SimpleDateFormat类包含时区的处理方法

1.前言

需要把格式为“2017-02-23T08:04:02+01:00”转化成”23-02-2017-T15:04:02“格式(中国时区为+08:00所以是15点),通过网上查找答案,发现没有我需要的答案,最后我直接查看了java.text.SimpleDateFormat类的介绍,问题解决了。

2.格式所对应的表示方法如下

b0e15e8f8072ca27492cf3214a998b3d.png

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类的其它方法也是类似的。


版权声明:本文为weixin_35779370原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。