来自:会点代码的大叔

大叔我北漂十多年,一直没有摇到北京的车牌,每周都需要通过一个 APP 办理“进京证”,当我办理 19 年最后一次进京证的时候,APP 给出了这样的提示:

日期显示:“2020-12-31”!

车友群里面立马有人不淡定了,虽然大家都猜出来,这应该是 APP 的 Bug,但还是难免要吐槽一下,讨论到最后,就快要“杀个程序员祭天了”!

那么产生这个 Bug 的原因是什么呢?其实很简单,就是 把 yyyy-MM-dd 写成了 YYYY-MM-dd 。

如果对时间处理不那么熟悉的程序员看到这里,会认为 yyyy 和 YYYY 有什么区别么?在代码里面敲一下,他们的结果也都是相同的啊!

public class DateTest {public static void main(String[] args) {Calendar calendar = Calendar.getInstance();calendar.set(2019, Calendar.AUGUST, 31);Date strDate = calendar.getTime();DateFormat formatUpperCase = new SimpleDateFormat("yyyy-MM-dd");System.out.println("2019-08-31 to yyyy-MM-dd: " + formatUpperCase.format(strDate));formatUpperCase = new SimpleDateFormat("YYYY-MM-dd");System.out.println("2019-08-31 to YYYY/MM/dd: " + formatUpperCase.format(strDate));}
}

运行结果为:

2019-08-31 to yyyy-MM-dd: 2019-08-31
2019-08-31 to YYYY/MM/dd: 2019-08-31

但是如果我们把日期改成 2019-12-31 再试试呢?结果产生了差异:

2019-12-31 to yyyy-MM-dd: 2019-12-31
2019-12-31 to YYYY-MM-dd: 2020-12-31

那么产生这个问题的原因是什么呢?其实很简单:Y 和 y 实际上代表了不同的含义。

  • y:year-of-era;正正经经的年;

  • Y:week-based-year;只要本周跨年,那么这周就算入下一年;也就是 12 月

这是开发过程中的一个小细节,一不小心就掉到坑里了。

特别推荐一个分享架构+算法的公众号,还没关注的小伙伴,可以长按关注一下:

长按订阅更多精彩▼

如有收获,点个在看,诚挚感谢

就在几天前,听说用了 YYYY-MM-dd 的程序员,都在加班改 Bug !相关推荐

  1. 程序员都有一张早衰的脸?但入职前,谁还不是个吴彦祖呢?

    28 岁的程序员可以提前拥有 82 岁老人的容颜. 在互联网企业,你可以很容易凭借外貌看出一个程序员到底有几年经验. 第一年,刚入行的程序员穿着干净的白T+牛仔裤,意气风发,眼神里带着清澈的愚蠢. 第 ...

  2. 听说三年前那些月入30K的程序员都是这样开始轻松构建算法交易机器:一点python基础+一点运气

    全文共3071字,预计学习时长9分钟 图源:Unsplash 人工智能的新突破每天都成为头条新闻.在金融领域,因其具有深厚历史.清楚明了和结构化数据,机器学习广泛运用.最终,金融领域成为了" ...

  3. idea查看svn前分支提交_SVN与Git的区别,读完之后,大部分程序员都收藏了...

    SVN(Subversion)是集中式管理的版本控制器,而Git是分布式管理的版本控制器!这是两者之间最核心的区别. 1) 最核心的区别Git是分布式的,而Svn不是分布的.能理解这点,上手会很容易, ...

  4. python视频课程推荐-听说程序员都在用,5款Python开发工具推荐

    很多Python学习者想必都会有如下感悟:最开始学习Python的时候,因为没有去探索好用的工具,吃了很多苦头.后来工作中深刻体会到,合理使用开发的工具的便利和高效.今天,我就把Python程序员使用 ...

  5. spring boot + vue 前后端分离时间戳转换为 yyyy:MM:dd HH:mm:ss格式

    后端 1.model(entity)注释直接转换 当返回类型为resultMap,在entity类里面相应属性上加上以下注释 @JsonFormat(pattern="yyyy-MM-dd ...

  6. GitHub 一周热点:听说程序员都是颜控?

    来源  | HelloGitHub GitHub上面除了很多有趣的项目,也有很多高颜值的项目,比如:图片共享网站 Unsplash 开源的 Dataset,提供了两百多张高颜值美照.Heroicons ...

  7. 听说这两款是最适合程序员编程的电脑

    对于程序员来说,工欲善其事,必先利其器,毕竟电脑是吃饭的家伙,属于生产力工具,每天对着电脑十几个小时,若是电脑不称手,那工作体验就不好,效率也会降下去,所以对自己好一点,买到自己喜欢的,投入回报率也会 ...

  8. mbp适合程序员_听说这两款是最适合程序员编程的电脑

    对于程序员来说,工欲善其事,必先利其器,毕竟电脑是吃饭的家伙,属于生产力工具,每天对着电脑十几个小时,若是电脑不称手,那工作体验就不好,效率也会降下去,所以对自己好一点,买到自己喜欢的,投入回报率也会 ...

  9. 就这样,我走完了程序员的前五年。一路风雨泥泞,前方阳光正好。

    你好呀,我是why. 前几天看到大学母校的一篇公众号文章推送,文章摘要写的是"仅以此片献给2021届毕业学子". 那一刻我才恍惚到:哦,距离我离开校门,喊出那句"混不好我 ...

最新文章

  1. 64位jvm的指针膨胀 和 数据补白
  2. 【JFreeChart】JFreeChart—输出时序图
  3. 深度学习领域专业词汇_深度学习时代的人文领域专业知识
  4. scrt如何切换成英文版_英文版SecureCRT显示乱码解决
  5. 301.inc.php,DeDeCMS默认首页及WWW域的301跳转
  6. 如何获取网页付费隐藏链接_如何将SEO变成可衡量的收入来源
  7. ch4 MySQL 安全管理
  8. CSDN 总部落户长沙,共建中国开发者产业中心城市!
  9. 智能车学习(一)—— 硬件准备
  10. 如何使用 MagSafe 外接电池?
  11. python题目59:员工考勤记录
  12. 真假Kingston U盘识别
  13. win7删除桌面计算机图标怎么删除,Windows7电脑桌面ie图标怎么删除不了?
  14. 计算机课听课评语和建议,听课记录的评语及建议
  15. 必须知道的python专属骚技巧25例
  16. 矩阵的最小路径和——动态规划
  17. 怎么获取apk的包名??
  18. 怎么压缩照片的大小?学会这几种方法随意压缩!
  19. 我的架构梦:(五十四) 分库分表实战及中间件之Mycat实战
  20. dwcc2019写php,mac网页设计软件:DreamweaverCC2019(dwcc2019直装版)

热门文章

  1. HDU1425简单排序题
  2. php安卓传输图片到mysql_php – Android应用程序将图像发送到MySQL
  3. 【牛客每日一题】tokitsukaze and Soldier 题目精讲 贪心、优先队列、堆
  4. java如何重写_java中如何重写一个方法
  5. hdu-1003 or 最大子序列和(四种解题方法)
  6. 人工智能机器学习区别计算机应用,AI、人工智能和机器学习有什么区别
  7. QT 实用代码片段 (持续更新)
  8. new操作符具体干了啥
  9. 运维学习之nfs系统文件服务
  10. Android8.0运行时权限策略变化和适配方案