平常工作的时候有时候会遇到美国时间,美国时间含有"T","Z","+"等特殊字符,比如 yyyy-MM-dd'T'HH:mm:ss'Z'或者yyyy-MM-dd'T'HH:mm:ss'+'00:00,而我们数据库保存的时间大部分是date或者dateTime类型直接保存会报错,这个时候就需要我们转换一下。
比如 2016-09-15T18:24:38+00:00 这种格式的。
新建一个Util
public static Date ToDate(String dateString) {
if(dateString==null||"".equals(dateString)){
return null;
}
Date returnDate=null;
//2016-09-15T18:24:38+00:00
String[] ds=new String[]{"yyyy-MM-dd'T'HH:mm:ss'Z'","yyyy-MM-dd'T'HH:mm:ss'+'00:00"};
for(String d:ds){
try{
returnDate= new java.text.SimpleDateFormat(d).parse(dateString);
}catch(Exception e){
continue;
}
//System.out.println("ToDate(parse):\nBefore->"+dateString+"\nAfter->"+DateUtil.getDateTimeString1(returnDate));
return returnDate;
}
try{
XMLGregorianCalendar cal=XMLGregorianCalendarImpl.parse(dateString);
GregorianCalendar gc=cal.toGregorianCalendar();
gc.setTimeZone(TimeZone.getTimeZone("UTC"));
returnDate= gc.getTime();
//System.out.println("ToDate(getTime):\nBefore->"+dateString+"\nAfter->"+DateUtil.getDateTimeString1(returnDate));
return returnDate;
}catch(Exception e1){
return null;
}
}
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。