美国时间格式化成通用时间

平常工作的时候有时候会遇到美国时间,美国时间含有"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: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;
		}
	}
	
}

猜你喜欢

转载自blog.csdn.net/zxl646801924/article/details/81208829
今日推荐