在做一个项目的过程中,出现了一个很奇怪的问题。就是修改一个项目的时候,从数据库中读取的时间显示是正确的,然后更新到后台的也是正确的,但是在进行时间转化的时候,出现了
Mon May 29 23:59:59 CST 2016
这种日期格式,
日期转换的代码如下:
public static Date formatDate(String dateDtr, Format format)
{
Date strtoDate = null;
try
{
strtoDate = ((SimpleDateFormat) format).parse(dateDtr);
}
catch (ParseException e)
{
e.printStackTrace();
}
return strtoDate;
}
format传过来的值为:
public static final Format FORMAT_YYYY_MM_DD_HH_MM_SS = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");
按道理Date的值为2016-5-29 23:59:59
可实际上一直都是 Mon May 29 23:59:59 CST 2016
不管怎么转换都无法搞定。
同时自己也在思考,在添加这个项目的时候,时间控件一模一样,可偏偏添加的时候没有出现这个问题,唯一不同的是修改里面的值来源于数据库,但也不确定是不是因为数据库的影响,后来在简书里查到这个博客
[http://www.jianshu.com/p/1285f27d30c9]
才找到解决之道,处理代码如下:
SimpleDateFormat sdf =new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy", Locale.ENGLISH);
Date date = sdf.parse(str);
return formatDate(date, FORMAT_YYYY_MM_DD_HH_MM_SS);
不过自己最终放弃了这样处理,因为获取到的时间是字符串,我直接保存到数据库中,让mysql去做处理。
尼玛,坑啊!
网友评论