平常工作的时候有时候会遇到美国时间,美国时间含有"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 class AmazonUtil {public static Date ToDate(String dateString) {if(dateString==null||"".equals(dateString)){return null;}Date returnDate=null;//2016-09-15T18:24:38+00:00String[] 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;}}}