zoukankan      html  css  js  c++  java
  • SimpleDateFormat-时间格式化中的大小写字符

    一、SimpleDateFormat:

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

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

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

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

    二、字符含义:有兴趣可以查看SimpleDateFormat的源码注释,详细有例

      1、yy表示Year, Y表示Week Year,计算方式不一样,通常使用【y】

      2、MM是为了和分钟的m区分,Month in year

      3、dd是Day in month,D是Day in year

      4、HH是24小时制Hour in day,hh是12小时制Hour in am/pm

      5、mm是分,Minute in hour

      6、ss是秒Second in minute,S是Millisecond

      7、aa是Am/pm marker

    三、复串含义:

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

    四、心法:

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

    五、大坑:时区设置问题

      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"));

      东八区!!!

      

  • 相关阅读:
    HDU 3085 Nightmare Ⅱ[双向广搜]
    HDU 4028 The time of a day [离散化DP]
    HDU4027 Can you answer these queries? [线段树]
    HDU 4331 Image Recognition [边上全为1构成的正方形个数]
    HDU4026 Unlock the Cell Phone [状态压缩DP]
    HDU 4333 Revolving Digits [扩展KMP]
    HDU4335 What is N? [数论(欧拉函数)]
    工程与管理
    项目管理笔记一
    通过100个单词掌握英语语法(七)ask
  • 原文地址:https://www.cnblogs.com/hackxiyu/p/9448897.html
Copyright © 2011-2022 走看看