首页 > 其他分享 >致命小问题:YYYY-MM-dd格式化时间

致命小问题:YYYY-MM-dd格式化时间

时间:2023-12-13 18:11:45浏览次数:32  
标签:yyyy 12 MM dd YYYY 2019 31

开始

日期格式化可以说是最常用的一个小知识了,例如格式化成"年-月-日"、"年-月-日 时-分-秒"、“年/月/日”等等,随之也就出现了“yyyy-MM-dd”、"yyyy-MM-dd HH-mm-ss"等格式,使用不当就会一脸懵逼。

运行

public static void main(String[] args) {
    Calendar calendar = Calendar.getInstance();
    calendar.set(2019, Calendar.DECEMBER, 31);
    Date strDate = calendar.getTime();
    DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
    System.out.println("2019年12月31日格式化【yyyy-MM-dd】后:" + dateFormat.format(strDate));
    dateFormat = new SimpleDateFormat("YYYY-MM-dd");
    System.out.println("2019年12月31日格式化【YYYY-MM-dd】后: " + dateFormat.format(strDate));
}

首先将日期改为2019看一下运行效果:

2019年12月31日格式化【yyyy-MM-dd】后:2019-12-31
2019年12月31日格式化【YYYY-MM-dd】后: 2020-12-31

其次将日期改为2022再看一下运行效果:

2022年12月31日格式化【yyyy-MM-dd】后:2022-12-31
2022年12月31日格式化【YYYY-MM-dd】后: 2022-12-31

疑惑

纳尼,为啥2019的时候会不一致呢,yyyyYYYY究竟有和区别呢❓

答疑

赶快查一下文档:

 

【y:year-of-era】正正经经的年,即元旦过后才算入下一年;【Y:week-based-year】表示当天周所属的年份,一周从周日开始,周六结束,只要本周跨年,那么这周就算入下一年;

举例

就比如说2019年12月31日, 12月31日所在的这一周是跨年的一周,而 12月31日 是周二,那使用 YYYY 的话会显示 2020,使用 yyyy 则会显示2019,因为 yyyy 从 1月1日 才开始算是 2020。而2022年12月31日, 12月31日所在的这一周(周六)非跨年的一周,那不管使用 YYYY 还是yyyy都会显示 2022。

总结

这虽然是个很小的知识点,但是也有很多人栽到坑里,记录一下,愿永无 bug~

标签:yyyy,12,MM,dd,YYYY,2019,31
From: https://www.cnblogs.com/mharvay/p/17899642.html

相关文章

  • 服务器被DDOS攻击如何用高防ip去防护?
    什么是DDoS攻击?分布式拒绝服务(DDoS)攻击是通过大规模互联网流量淹没目标服务器或其周边基础设施,以破坏目标服务器、服务或网络正常流量的恶意行为。DDoS攻击利用多台受损计算机系统作为攻击流量来源以达到攻击效果。利用的机器可以包括计算机,也可以包括其他联网资源(如IoT设备)。......
  • kali反弹shell Command shell session X is not valid and will be closed
    msfvenom生成test.exe 执行监听但是报错,[-]Commandshellsession15isnotvalidandwillbeclosed[*]172.24.96.1-Commandshellsession15closed.最后检查发现默认的 5exploit/multi/handlermanualNoGenericPayloadHandler,需要指定对应payload,(manualNoG......
  • HanLP — HMM隐马尔可夫模型 -- 训练和预测
    BMES=>B-begin:词语开始、M-middle:词语中间、E-end:词语结束、S-single:单独成词训练的过程,就是求三个矩阵的过程初始概率矩阵转移概率矩阵发射矩阵每个字有4种可能性,上图中有7个字,就是4^7种可能性维特比算法,从众多路径中,挑出最优的那条,他和隐马尔可夫没有强关联初......
  • pytest框架学习-pytest_addoption钩子函数
    适用场景:一套自动化代码,多套环境。pytest_addoption允许用户自定义注册一个命令行参数,方便用户通过命令行参数的形式给pytest传递不同的参数进行不同测试场景的切换。pytest_addoption钩子函数一般和内置fixturepytestconfig配合使用,pytest_addoption注册自定义的命令......
  • HanLP — HMM隐马尔可夫模型 -- 语料库
    BMES=>B:词语开始、M:词语中间、E:词语结束、S:单独成词并非所有中文任务都需要分词语料库每行是一篇“文章”每篇文章用空格分开语料库的准确性,严重影响分词结果理论上,语料库越大越好每个字都有一个标识(隐藏状态),可以根据语料库得到所有标识中文分词就是为了得到状态......
  • JavaWeb - Day06 -MySQL-DDL、DML
    01.MySQL-课程介绍什么是数据库?数据库:英文为DataBase,简称DB,它是存储和管理数据的仓库。像我们日常访问的电商网站京东,企业内部的管理系统OA、ERP、CRM这类的系统,以及大家每天都会刷的头条、抖音类的app,那这些大家所看到的数据,其实都是存储在数据库中的。最终这些数据,只是在......
  • 遇到攻击怎么办,有什么办法解决网络层和应用层的DDoS攻击
    随着网络普及,互联网安全形势面临频繁的攻击和威胁,主要威胁之一就是DDoS攻击。DDOS是一种常见的网络攻击,可以通过网络层和应用层进行攻击。我们就来简单了解下网络层DDoS攻击和应用层DDoS攻击,以及面对流量攻击有什么解决方案。网络层DDoS攻击和应用层DDoS攻击是两种不同类型的分布式......
  • Django runserver 时报错 [Errno 11001] getaddrinfo failed
    现象描述:python使用Django命令pythonmanage.pyrunserver0:8000时,在浏览器登录遇到错误[Errno11001]getaddrinfofailed错误:解决办法:查看本机ip地址(windows在cmd中输入ipconfig可查看本机ip)打开Django项目的settings.py文件,在ALLOWED_HOSTS=[]中填入查......
  • Active MM 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/mm/active_mm.html注意,对于内核中配置为CONFIG_MMU_LAZY_TLB_REFCOUNT=n的系统,mm_count引用计数可能不再包括“懒惰”用户(即运行任务时满足条件->active_mm==mm&&->mm==NULL的用户)。必须使用mmgrab_lazy_tlb()和mmdrop_laz......
  • 异构内存管理(HMM) 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/mm/hmm.html异构内存管理(HMM)HMM提供基础设施和辅助工具,将非常规内存(例如设备内存,如GPU板载内存)整合到常规内核路径中,其核心是为此专门设计的用于此类内存的structpage(请参见本文档的第5至7节)。HMM还提供了用于SVM(共享虚拟内存)的可选辅......