SimpleDateFormat-时间格式化中的大小写字符

1、SimpleDateFormat:

  这个类是用来格式化date类型数据为指定格式的时间的spa

  使用的而时候,老是区分不清 yyyy-mm-dd yyyy-MM-dd
code

  而使用不一样的大小写字符格式化出来的时间是不同的orm

  经常使用格式:yyyy-MM-dd HH:mm:ss (年-月-日 时:分:秒)blog

 

2、字符含义:有兴趣能够查看SimpleDateFormat的源码注释,详细有例

  一、yy表示Year, Y表示Week Year,计算方式不同,一般使用【y】get

  二、MM是为了和分钟的m区分,Month in year源码

  三、dd是Day in month,D是Day in year
class

  四、HH是24小时制Hour in day,hh是12小时制Hour in am/pmdate

  五、mm是分,Minute in hourim

  六、ss是秒Second in minute,S是Millisecond数据

  七、aa是Am/pm marker

 

3、复串含义:

  一、MM复串是位数不够补足的,只写M的话,1月是不会显示01月的

 

4、心法:

  使用的时候知道了每一个字符大小写表明的意义,就能够在使用的时候按位匹配,就知道时间格式的是否正确

 

5、大坑:时区设置问题

  SimpleDateFormat sdf = new SimpleDateFormat('yyyy-MM-dd HH:mm:ss',locale.CHINA);

  看着完美无懈可击,输出会发现,和你预想的时间彻底不一样,就是locale得设置问题致使的

  locale个人理解是设置的中英文,通常时间没有中文设置为English便可

  正确得姿式以下:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
sdf.setTimeZone(TimeZone.getTimZone("GMT+8"));

  东八区!!!

相关文章
相关标签/搜索