开发者社区> 问答> 正文

美国时间怎么格式化成通用时间?

美国时间怎么格式化成通用时间?

展开
收起
问问小秘 2020-04-30 16:48:47 848 0
1 条回答
写回答
取消 提交回答
  • 平常工作的时候有时候会遇到美国时间,美国时间含有"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;
    		}
    	}
    	
    }
    
    2020-04-30 16:49:17
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载