zoukankan      html  css  js  c++  java
  • 第五坑:YYYY和yyyy

      19年底,一个比较出名,影响比较大的bug,就是这个YYYY和yyyy,DateFormat的格式确实很多,没有认真学习过的人,比较容易犯错,除非你一直copy前人的正确代码,当然,前人写的也有可能有问题。
      我当然也写了这个bug出来,然后当时计划任务判断时间的时候,时间就不相等,导致计划任务没有执行,幸运的是,那个计划任务只是一个推送通知的计划任务,不是很重要,但是,还是得引起足够重视。我去查看原因的时候,看到自己写的是YYYY,当然我不可能一眼就看出猫腻,我看了一下,觉得代码没问题啊,而且之前一直都是好好的,为什么今天出问题了呢,百思不得其解。我就把代码copy出来,测试一下,用今天的日期,发现确实不满足我的判断条件,然后我看转换出来的日期是2020年,有趣!我就想应该是日期格式化的问题,然后去百度搜了一下,发现这已经是一个热门bug了,哈哈哈

    DateFormat dfYYYY = new SimpleDateFormat("YYYY-MM-dd");//YYYY
    DateFormat dfyyyy = new SimpleDateFormat("yyyy-MM-dd");//yyyy
    String date = "2019-12-29";
    //先转换为正常的日期,再格式化看差别
    System.out.println(dfyyyy.format(dfyyyy.parse(date)));//2019-12-29
    System.out.println(dfYYYY.format(dfyyyy.parse(date)));//2020-12-29
    

    SimpleDateFormat各字母代表的含义

    字母 日期或时间元素 类型 示例
    G Era 标志符 Text AD
    y 年份 Number 1996; 96
    M 年份中的月份 Text July; Jul; 07
    w 年份中的周数 Number 27
    W 月份中的周数 Number 2
    D 年份中的天数 Number 189
    d 月份中的天数 Number 10
    F 月份中的星期 Number 2
    E 星期中的天数 Text Tuesday; Tue
    a Am/pm 标记 Text PM
    H 一天中的小时数(0-23) Number 0
    k 一天中的小时数(1-24) Number 24
    K am/pm 中的小时数(0-11) Number 0
    h am/pm 中的小时数(1-12) Number 12
    m 小时中的分钟数 Number 30
    s 分钟中的秒数 Number 55
    S 毫秒数 Number 978
    z 时区 General time zone Pacific Standard Time; PST; GMT-08:00
    Z 时区 RFC 822 time zone -0800
  • 相关阅读:
    字节序列高低端问题
    简单的进制转换
    网页中如何调用WIN本地程序
    获取CAN报文并解析
    异步通信服务选型
    PostgreSQL 更新JSON,JSONB字段
    js,Date的toJSON方法时间和当地时间不一致如何处理
    js中字符串的替换 replace方法
    百度富文本编辑器umeditor,ueditor字体修改无效的问题
    python 3 基础之类和对象的创建、面向对象的三大特性
  • 原文地址:https://www.cnblogs.com/yanghanwen/p/12119045.html
Copyright © 2011-2022 走看看