Java 日期格式yyyy-MM-dd与YYYY-MM-dd区别

 更新时间:2023年11月20日 09:40:33   作者:大龄烤红薯  
我们在java中常用的规范格式为:
yyyy-MM-dd HH:mm:ss:SSS 24小时制或yyyy-MM-dd hh:mm:ss:SSS 12小时制,本文就来介绍一下两者的区别,感兴趣的可以了解一下

1. 前言

我们在java中常用的规范格式为:
yyyy-MM-dd HH:mm:ss:SSS 24小时制或yyyy-MM-dd hh:mm:ss:SSS 12小时制

2. yyyy-MM-dd与YYYY-MM-dd区别在哪里?

我们看IDEA给的代码提示:

(小疏忽后面的字被挡住了),解释如下:

  • Y 代表 Week Year,表示当天周所在的年份。这种方式将会把一年划分成52 周/53周(类似于闰年的概念,每隔几年将会增加一周)。
  • Week Year下每周仅属于某一年,如果某年的第一周或最后一周跨年,就会导致部分日期年份与实际不符。
  • YYYY 表示:当天所在的周属于的年份,一周从周日开始,周六结束,只要本周跨年,那么这周就算入下一年。

3. 举例验证

常用格式为:yyyy-MM-dd HH:mm:ss;
以:2015-01-02 17:19:22:043 举例

字符含义举例
y(小写y)年yyyy-2015
M(大写M)月MM-01
d(小写d)日(某月份对应的天数)dd-02
H(24 小时制,大写H)小时(0-23)HH-17
h(12 小时制,小写h)小时(1-12)hh-05
m(小写m)分钟mm-19
s(小写s)秒ss-22
Y(大写y)Week YearYYYY-2015
D(大写D)一年中的天数(年份为大写Y起作用)DD-362
S(大写S)毫秒SSS-043

4. 上代码验证

4.1 代码

 public static void main(String[] args) {
        // 将指定时间转换成时间戳,再由时间戳转换成时间
        String Stime = "2015-01-02 17:19:22:43"; // 处理前的时间
        long Ltime = 0; // 时间戳
        System.out.println("处理前的时间:" + Stime);
        // 时间转为时间戳
       //1.SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
      // 2.SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-DD hh:mm:ss");
      // 3.SimpleDateFormat simpleDateFormat = new SimpleDateFormat("YYYY-MM-dd HH:mm:ss");
      // 4.SimpleDateFormat simpleDateFormat = new SimpleDateFormat("YYYY-MM-DD hh:mm:ss");
        try {
            Date date2 = simpleDateFormat.parse(Stime);
            Ltime = date2.getTime();
            System.out.println("时间转时间戳结果:" + Ltime);
        } catch (ParseException | java.text.ParseException e) {
            e.printStackTrace();
        }
        //将时间戳转换为时间
        String res = simpleDateFormat.format(Ltime);
        System.out.println("时间戳转时间结果:" + res);
    }

4.2 结果:

结果1:yyyy-MM-dd HH:mm:ss:SSS
处理前的时间:2015-01-02 17:19:22:43
时间转时间戳结果:1420190362043
时间戳转时间结果:2015-01-02 17:19:22:043

结果2:yyyy-MM-DD hh:mm:ss:SSS 
时间转时间戳结果:1420190362043
时间戳转时间结果:2015-01-02 05:19:22:043 (证明yyyy对大写D不敏感)

结果3:YYYY-MM-dd HH:mm:ss:SSS
时间转时间戳结果:1419758362043
时间戳转时间结果:2015-12-28 17:19:22:043

结果4:YYYY-MM-DD hh:mm:ss:SSS
时间转时间戳结果:1419758362043
时间戳转时间结果:2015-12-362 05:19:22:043 (证明YYYY对大写D敏感)362代表12月28号这天是一年中的第362天

5. 关于字母数量以及大小写问题

5.1 大小写问题

字母的大小写一定要符合规范,否则会出现bug,比如yyyy-mm-dd hh:MM:ss,
此时月份和分钟写乱了,就会出现时间错乱问题,月份时间变错,结果如下:

例子:

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-mm-dd HH:MM:ss");
2016-01-02 17:07:22

5.2 字母数量问题

根据日常使用规范年份都是四个字母所以yyyy,月份、天数、时分秒毫秒同理(毫秒=1000就进位了)

以下是一些字母数量不常规的结果:

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yy-MM-dd HH:mm:ss:SSS");
时间戳转时间结果:15-01-02 17:19:22:043

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("y-MM-dd HH:mm:ss:SSS");
时间戳转时间结果:2015-01-02 17:19:22:043

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyy-MM-dd HH:mm:ss:SSS");
时间戳转时间结果:02015-01-02 17:19:22:043

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HHH:mmm:ss:SSS");
时间戳转时间结果:2015-01-02 017:019:22:043

6. 总结

在java中要使用规范:即-> yyyy-MM-dd HH:mm:ss:SSS 24小时制或yyyy-MM-dd hh:mm:ss:SSS 12小时制

到此这篇关于Java 日期格式yyyy-MM-dd与YYYY-MM-dd区别的文章就介绍到这了,更多相关Java yyyy-MM-dd YYYY-MM-dd内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 项目中配置Maven为国内源实现方式

    项目中配置Maven为国内源实现方式

    这篇文章主要介绍了项目中配置Maven为国内源实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2026-03-03
  • JVM完全解读之Metaspace解密源码分析

    JVM完全解读之Metaspace解密源码分析

    通过这篇文章,你将可以了解到,为什么会有metaspace?metaspace的组成,metaspace的VM参数,jstat里我们应该关注metaspace的哪些值,有需要的朋友可以借鉴参考下
    2022-01-01
  • Feign利用自定义注解实现路径转义详解

    Feign利用自定义注解实现路径转义详解

    这篇文章主要讲解一下如何通过注解实现对路由中的路径进行自定义编码,文中的示例代码讲解详细,对我们学习或工作有一定的帮助,需要的可以参考一下
    2022-06-06
  • Java异常基础知识解析

    Java异常基础知识解析

    这篇文章主要介绍了Java异常基础知识解析,具有一定借鉴价值,需要的朋友可以资参考下。
    2017-12-12
  • java文件上传Demo(必看篇)

    java文件上传Demo(必看篇)

    下面小编就为大家带来一篇java文件上传Demo(必看篇)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • 浅谈JSP与Servlet传值及对比(总结)

    浅谈JSP与Servlet传值及对比(总结)

    下面小编就为大家带来一篇浅谈JSP与Servlet传值及对比(总结)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • Java如何利用LocalDate获取某个月的第一天与最后一天日期

    Java如何利用LocalDate获取某个月的第一天与最后一天日期

    这篇文章主要给大家介绍了关于Java如何利用LocalDate获取某个月的第一天与最后一天日期的相关资料,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2022-01-01
  • Java自带注解、元注解、自定义注解的区别

    Java自带注解、元注解、自定义注解的区别

    本文主要介绍了Java自带注解、元注解、自定义注解的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • 浅谈java是如何做资源回收补救的

    浅谈java是如何做资源回收补救的

    这篇文章主要介绍了浅谈java是如何做资源回收补救的,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • Kafka生产者和消费者高级用法及说明

    Kafka生产者和消费者高级用法及说明

    Kafka生产者和消费者高级用法包括事务支持、多线程处理和自定义序列化与反序列化,事务支持确保消息的原子性,多线程处理提高高吞吐量场景下的效率,自定义序列化和反序列化则增强了灵活性,适用于复杂数据结构
    2025-11-11

最新评论