java 格式化当前日期有误

今天做个上传文件的功能,并且要记录当前的时间作为上传时间,但是发现用java new Date() 并且格式化之后的时间有问题,无法存入数据库,例如:

今天是2014年7月31日,时间是下午6点51分42秒,但输出的结果却是 2014-51-31 06:51:42,首先,月份肯定错了;其次,下午6点最好能显示成18点。



不知问题出在哪里,检查了一下格式化用的日期标识符:

DateUtils.asString(new Date(), "yyyy-mm-dd hh:mm:ss")
然后百度了一下,发现问题了:

    月份用的“mm”其实代表的分钟,而不是月份,月份要用“MM”,并且要用24小时制的话是“HH”,“hh”是12小时制。

   具体规则如下:

[plain]  view plain copy
  1. 时间日期标识符:  
  2. yyyy:年  
  3. MM:月  
  4. dd:日   
  5. hh:1~12小时制(1-12)  
[plain]  view plain copy
  1. HH:24小时制(0-23)  
  2. mm:分  
  3. ss:秒   
  4. S:毫秒   
  5. E:星期几  
  6. D:一年中的第几天  
  7. F:一月中的第几个星期(会把这个月总共过的天数除以7)  
  8. w:一年中的第几个星期  
  9. W:一月中的第几星期(会根据实际情况来算)  
  10. a:上下午标识  
  11. k:和HH差不多,表示一天24小时制(1-24)。  
  12. K:和hh<span style="font-family: Arial, Helvetica, sans-serif;">差不多</span><span style="font-family: Arial, Helvetica, sans-serif;">,表示一天12小时制(0-11)。</span>  
  13. z:表示时区  

总结:日期操作经常用到,可是一直没有很熟练地掌握,说明不够重视。

你可能感兴趣的:(java 格式化当前日期有误)