赞
踩
本来想偷懒百度一个时间字符串转UTC的代码,但发现没有一个能用,写得还复杂得要死,没办法还是自己撸一个。
/**
* UTC时间字符串转本地时间字符串
* 我的本地getDateTimeInstance()是格式:yyyy-MM-dd HH:mm:ss
* @param str UTC时间字符串
* @return
*/
public static String dateUTC2LocalString(String str) {
SimpleDateFormat utcDateFormat =new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'");//输入UTC时间格式
utcDateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
SimpleDateFormat localFormater = (SimpleDateFormat) DateFormat.getDateTimeInstance();//解决Date.toLocaleString()过时
Date date=null;
try {
date=utcDateFormat.parse(str);
} catch (Exception e) {
e.printStackTrace();
}
return localFormater.format(date);
}
/**
* 本地时间字符串转UTC时间字符串
* 我的本地getDateTimeInstance()是格式:yyyy-MM-dd HH:mm:ss
* @param str 本地时间字符串
* @return
*/
public static String localString2StringUTC(String str) {
SimpleDateFormat utcFormat =new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'");//转化后UTC时间格式
utcFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
SimpleDateFormat localFormater = (SimpleDateFormat) DateFormat.getDateTimeInstance();//解决Date.toLocaleString()过时
Date date=null;
try {
date=localFormater.parse(str);
} catch (Exception e) {
e.printStackTrace();
}
return utcFormat.format(date);
}
我的JDK版本是1.8所以Date.toLocaleString()方法过期了,用了java.text.DateFormat的getDateTimeInstance()方法,这个方法我自己的本地格式是yyyy-MM-dd HH:mm:ss。
使用localString2StringUTC方法时,如果本地时间字符串输入格式不匹配getDateTimeInstance方法的格式的话会报错,可以用SimpleDateFormat写死时间格式来解决。
注:未做错误校验和优化。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。