Mon Dec 09 22:06:24 格林尼治标准时间+0800 2013
大家通过我前几篇的博客已经知道我这几天深受时间转换的折磨。这一个小小的问题让我费了很长时间下面是对问题解决的一些记录
就已上边的日期为例为大家分析,希望能够帮助到遇到同样问题的同学
首先 Mon Dec 09 22:06:24 格林尼治标准时间+0800 2013 字段一个格林尼治标准时间时间,一般情况下字段中不会含有中文,对于这种格式有两种解决方法
1,
1)首先将格林尼治标准时间+0080去掉;
2)SimpleDateFormat的格式必须和剩余的字符格式(Thu Mar 07 09:53:21 2013)完全一样,比如星期几使用“Thu”三个字符表示的,在Format里面也必须使用三个E来表示;
3)在Android里面,new Locale("English")是不被认可的,会报错,必须用Local.ENGLISH才可以
public static String convertGMTToLoacale(String gmt){
String cc = gmt.substring(0, 19) + gmt.substring(33, 38);
SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss yyyy",new Locale("English"));
try {
Date date = sdf.parse(cc);
SimpleDateFormat dateformat = new SimpleDateFormat("dd/MM");
String result = dateformat.format(date);
return result;
} catch (ParseException e) {
}
return "";
}
2.第二种方法是在不进行字符串剔除的情况下:(亲自使用有效)
在simpleDateFormat方法中将格式字符串变换为:"EEE MMM dd HH:mm:ss 格林尼治标准时间+0800 yyyy" 就可以了。这样就可一将时间转换为Date类型:
private DateFormat format = new SimpleDateFormat("EEE MMM dd HH:mm:ss 格林尼治标准时间+0800 yyyy",Locale.ENGLISH);