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

这篇具有很好参考价值的文章主要介绍了致命小问题:YYYY-MM-dd格式化时间。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

开始

日期格式化可以说是最常用的一个小知识了,例如格式化成"年-月-日"、"年-月-日 时-分-秒"、“年/月/日”等等,随之也就出现了“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~文章来源地址https://www.toymoban.com/news/detail-754235.html

到了这里,关于致命小问题:YYYY-MM-dd格式化时间的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java 日期格式(yyyy-MM-dd HH:mm:ss SSS)

    常用格式为:yyyy-MM-dd HH:mm:ss 以 2019-12-31 06:07:59:666 时间为例: 字符 含义 Example y(小写的y) 年 yyyy----2019 M(大写的M) 月   MM----12 d(小写的d) 一月中的天数   dd----31 H(24 小时制,大写的H) 小时(0-23)   HH----18 h(12 小时制,小写的h) 小时(1-12)   hh----06 m(小写的m)

    2024年02月05日
    浏览(49)
  • 前端 jQuery 如何将时间转换为yyyy-MM-dd格式的

    可以使用 JavaScript 内置的 Date 对象和其提供的方法来实现将时间转换为指定格式的字符串。具体可以使用以下代码: 上述代码中,我们首先创建了一个 Date 对象,然后使用其提供的 getFullYear() 、 getMonth() 和 getDate() 方法获取了年份、月份和日期。注意, getMonth() 方法返回的月

    2024年02月06日
    浏览(43)
  • yyyy-MM-dd HH:mm:ss 时间格式 时间戳 全面解读超详细

    时间格式(协议) 描述 gg 时期或纪元。 y 不包含纪元的年份。不具有前导零。 yy 不包含纪元的年份。具有前导零。 yyyy 包含纪元的四位数的年份。 M 月份数字。一位数的月份没有前导零。 MM 月份数字。一位数的月份有一个前导零。 MMM 月份的缩写名称,在AbbreviatedMonthNames中定

    2024年02月05日
    浏览(40)
  • JavaScript 中 new Date() 生成的日期格式转换为 ‘yyyy-MM-dd HH:mm:ss‘ 格式的字符串

    1、使用 Date 对象自带的方法 可以使用 Date 对象自带的方法来获取日期字符串的各个部分,然后将它们拼接成目标格式的字符串: 2、使用第三方库 也可以使用第三方库来格式化日期字符串,如 moment.js: 或者使用 ES6 的模板字符串和 Date 对象自带的方法:

    2024年02月16日
    浏览(71)
  • Js各种时间转换问题(YYYY-MM-DD 时间戳 中国标准时间)

    指定格式 YYYY-MM-DD HH:MM:SS 时间戳 中国标准时间 Sat Jan 30 2022 08:26:26 GMT+0800 (中国标准时间) new Date() 获得系统当前时间就会是这种形式 时间戳转换为 yyyy-mm-dd或yyyy-MM-dd HH-mm-ss yyyy-mm-dd或yyyy-MM-dd HH-mm-ss 转为时间戳 中国标准时间转为 yyyy-mm-dd hh-mm-ss yyyy-mm-dd hh-mm-ss 转为中国标准时间

    2024年01月21日
    浏览(40)
  • ES 中时间日期类型 “yyyy-MM-dd HH:mm:ss” 的完全避坑指南

    时间和日期类型是我们作为开发每天都会遇到的一种常见数据类型。和 Java 中有所不同, Elasticsearch 在索引创建之前并不是必须要创建索引的mapping。关系型数据库的思维就是在中写入数据之前,并不强制创建表结构。我们不用事先声明字段名称,字段类型以及长度等属性就可

    2024年01月23日
    浏览(47)
  • 踩坑:小程序 new Date(“YYYY-MM-DD hh:mm:ss”)在ios手机上显示null

    一、发现问题: 苹果手机上进入小程序,点击picker组件选择时间日期(YYYY-MM-DD hh:mm:ss),用new Date(“YYYY-MM-DD hh:mm:ss”)转化时间格式进行比较时,变量转化后的结果为null 二、解决方案: 三、分析并查找原因: 1.在IOS中,new Date中指定的字符串还有格式,new Date(“YYYY/MM/DD hh:

    2024年02月12日
    浏览(36)
  • 【夏令时】用@JsonFormat(pattern = “yyyy-MM-dd“)注解,出生日期竟然年轻了一天

    用@JsonFormat(pattern = \\\"yyyy-MM-dd\\\")注解,出生日期竟然年轻了一天 艺术源于生活,bug源于开发。 起因是艰苦奋战一个月, 测试及验收都顺利通过 ,上线也稳稳的 成功 。但是 毒奶 总是在不经意给你灌上,部分的用户的 身份证和出生日期对不上,总是少一天 。 开始以为 前端显

    2024年02月11日
    浏览(40)
  • yyyy-MM-dd‘T‘HH:mm:ssZ的T是什么意思?为什么要用单引号引着

    背景 Java里的日期格式,通常我们看到 yyyy-MM-dd\\\'T\\\'HH:mm:ssZ 的写法是什么意思? 尤其这个T作为分隔符为什么左右有单引号,这个单引号会打印出来吗? 这个Z又是什么意思?是时区吗?如果是时区,输出的格式是什么?是类似于这样的字符串:+0800还是+08:00还是+8:00? 解释 yyyy-

    2024年02月07日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包