本打算逃开百度的时间字符串,转动UTC的代码,但发现没有一个能用的东西,写得很复杂,快死了,没办法自己一个人了。
//*
*从utc时间字符串到本地时间字符串
*我当地的getDateTimeInstance ()是yyyy-MM-dd HH:mm:ss格式
* @param str UTC时间字符串
* @return
*/
publicstaticstringdateutc 2本地字符串{
simpledateformatutcdateformat=newsimpledateformat (' yyyymmdd ' t ' hhmmss ' z ' ); 输入//utc时间格式
ut cdate format.settime zone (time zone.gettime zone (' utc ' );
simpledateformatlocalformater=(简单数据格式) DateFormat.getDateTimeInstance ); Date.toLocaleString ()过时的解决方案
日期日期=null;
try {
date=ut cdate格式. parse (str );
}catch(exceptione ) {
e .打印堆栈跟踪(;
}
returnlocalformater.format (date;
}
//*
*从本地时间字符串到UTC时间字符串
*我当地的getDateTimeInstance ()是yyyy-MM-dd HH:mm:ss格式
* @param str本地时间字符串
* @return
*/
publicstaticstringlocalstring2string utc {
simpledateformatutcformat=newsimpledateformat (' yyyymmdd ' t ' hhmmss ' z ' ); //转换后的UTC时间格式
utc格式. settime zone (time zone.gettime zone (' utc ' ) );
simpledateformatlocalformater=(简单数据格式) DateFormat.getDateTimeInstance ); Date.toLocaleString ()过时的解决方案
日期日期=null;
try {
date=localformater.parse(str );
}catch(exceptione ) {
e .打印堆栈跟踪(;
}
returnutcformat.format(date;
}
Date.toLocaleString (方法已过期,因为我的JDK版本是1.8。 使用了java.text.DateFormat中的getDateTimeInstance )方法。 这个方法我自己的本地格式是yyy-mm-DDh336666
使用localString2StringUTC方法时,如果本地时间字符串的输入格式与getDateTimeInstance方法的格式不匹配,则会发生错误。 可以通过用简单日期格式写死区时间格式来解决。
注:没有进行错误检查和优化。