时间格式区别之YYYY/MM/dd HH:mm 与 yyyy/MM/dd HH:mm

YYYY-MM-dd 与 yyyy-MM-dd 的区别以及跨年问题 大写的YYYY通常用于表示“周年”,在某些编程语言或者数据格式中,比如ISO 8601日期格式中,YYYY可能代表的是所在周属于的年份。这意味着,如果一周跨越了两个不同的年份,该周会被归属到哪一年取决于这周中的大部分日子属于哪一年。 阅读详情

1. 相应的业务场景

1.1 场景简介

        正值2019年末,2020年初之际,系统日期时间为2019/12/31而系统报表却出现了2020/12/31的日期。

1.2 代码案例如下

2.Java中YYYY与yyyy的含义

2.1 时间字母含义表

2.2 Y的Week Year含义

         Y代表的事Week Year,表示当天周所在的年份。这种方式将会将一年划分为52周或者事53周(类似闰年,每隔几年会增加一周)。Week Year的每周仅仅属于某一年,如果某年的第一周或者最后一周跨年,就会导致部分日期年份与实际不符合。

2.3 Week Year的两种标准

  • ISO 8601:国际标准,每周从周一开始,每年的第一周至少包含 4 天
  • Common:通用标准,每周从周日开始,每年的第一周至少包含 1 天

注:Calendar 对象可以通过 setFirstDayOfWeek 与 setMinimalDaysInFirstWeek 改变上面默认标准

Java 将会根据系统环境变量决定使用哪种标准,可以通过设置 Locale 改变方式。代码如下:

// 选择 20191229 这一天
Date date20191229 = DateUtils.parseDate("20191229", "yyyyMMdd");
// 将会输出 2020,使用 Common 。当前系统,Locale 默认值为 Locale.CHINA
System.out.println(DateFormatUtils.format(date20191229,"YYYY"));
// 将会输出 2019,使用 ISO 8601
System.out.println(DateFormatUtils.format(date20191229,"YYYY", Locale.FRANCE));

 2.4 ISO 8601 标准之最后一周跨年以及第一周跨年的例子:

ISO8601
2015 年最后一周跨年,2016 前三天使用 YYYY 最后结果为 2015,时间看起来被回退了2020 年第一周跨年,2019 年最后两天使用 YYYY 结果为 2020

3. 常用的日期格式

       下面以 2019-12-31 06:06:06:666 时间为例

Letter含义Example
YWeek YearYYYY—>2020
y年yyyy——>2019
M月MM——>12
m分mm——–>06
D一年中天数DD——–>365
d一月中的天数dd———>06
H小时(0-23)HH———>06
h小时(1-12)hh———>06
S毫秒SSS———>666

总结:

  • 第一,切记 YYYY 与 yyyy区别,年份最好统一使用 yyyy
  • 第二,可以使用阿里的 Alibaba Java Coding Guidelines 插件,这个插件可以检测出使用 YYYY 的代码
  • 第三,阅读完整文档,消除 Bug 最好的的办法就是阅读完整的文档

帮助:

1. week_year

2. Serious Security: The decade-ending “Y2K bug” that wasn’t

3. ISO week date_wiki

4. Difference between year-of-era and week-based-year?

转载地址:http://www.justdojava.com/

 

 

 

 

正则表达式实战:精准匹配多种日期格式(YYYY/MM/DD、YYYY-MM-DD、YY.MM.DD) 本文详细介绍了如何使用正则表达式精准匹配多种日期格式(YYYY/MM/DD、YYYY-MM-DD、YY.MM.DD),包括基础构建、闰年处理、多分隔符支持及不同编程语言的实现差异。通过实战案例和优化建议,帮助开发者高效解决日期格式验证难题,提升数据处理准确性。 阅读详情

相关推荐

时间格式符号陷阱:yyyy/YYYY、dd/DD、mm/MM、hh/HH深度解析

时间格式化是软件开发中基础却高危的环节,核心在于理解日期时间的多维语义——日历年与周年年(yyyy/ YYYY)、月内日与年内日(dd/ DD)、分钟与月份(mm/ MM)、12小时制与24小时制(hh/ HH)的本质差异。这些符号遵循ISO 8601标准与本地化实践的双重逻辑,其歧义直接导致跨系统解析错乱、日志分析偏差、数据库查询失效等线上故障。掌握它们的原理,不仅关乎格式串书写正确性,更影响时序数据建模、分区设计、API契约定义与全链路可观测性。本文聚焦四组高频易错符号,结合金融、电商、日志、报表等典型

weixin_29574585的博客 350

日期时间格式字符串“yyyy-MM-dd HH:mm:ss“的意思

日期时间格式字符串"yyyy-MM-dd HH:mm:ss"

Greedy Hat的博客 4万+

时间格式大小写陷阱:yyyy/YYYY、dd/DD等四组关键区别

时间格式字符串是软件系统中最基础也最易出错的组件之一,其本质是ISO 8601标准与各语言运行时共同约定的‘时间契约’。理解`yyyy`(日历年)与`YYYY`(周历年)、`dd`(月内日)与`DD`(年内日)等语义差异,关键在于区分‘日历系统’与‘周期系统’两种时间模型——前者按自然月/年组织,后者按ISO周/年度序列计算。这种差异直接影响财务对账、日志归档、调度任务和BI分析等核心场景。例如,用`YYYY`解析2022-12-31会得到2023,导致跨年数据错位;用`DD`生成文件名可能产生非法路径。掌

weixin_33491377的博客 246

yyyy-mm-dd是什么格式_【操作技巧】还在为日期格式发愁吗?

我们经常会遇到一些表格,不过这些表格中的日期格式各不相同。我们在数据处理时就需要将日期格式全部统一,对于日期格式的转换,这里来给大家分享一些技巧,快速帮助我们转换日期格式。我们常用的日期格式有以下几种“YYYY年MM月DD日”、“YYYY/MM/DD”、“YYYYMMDD”、“YYYY.MM.DD”、“YYYY-MM-DD”通常数据源有日期格式和数字两种,前者日期本身也是数字,但其因为是日期转换成...

weixin_40008969的博客 2万+

深入浅出SSD:固态存储核心技术、原理与实战(文末赠书)

作为经典畅销书的升级版,本书在第1版的基础上新增了大量新知识(如闪存、UFS、测试、文件系统等),并改写或删减了许多过时或不适用的内容,总修改量超过60%。本书由SSD技术社区SSDFans的核心团队成员联合业界、高校SSD方面的专家共同完成,相对于第1版,内容更全面、更新,也更有深度。本书从产品、技术和应用3个维度展开,全面、详细讲解了SSD的发展历史、产品形态、工作原理、整体架构,以及各个功能模块的原理和使用,从SSD的前端接口协议到FTL算法,再到后端的闪存和纠错,以及测试,本书都有涉及。

阿玥的小博客 3126

上海交大计算机保研面试 2026:3类专项计划与10个联培方向深度解析

本文深度解析2026年上海交通大学计算机保研面试的3类专项计划与10个联培方向,包括区块链技术、智能计算系统和网络安全专项,以及蚂蚁科技、苏州智研院等联培基地。文章详细介绍了各专项的核心课程、硬件资源和就业去向,为计算机专业学生提供全面的申请策略和职业发展建议。

weixin_31528001的博客 397

关于时间格式yyyy-MM-dd HH:mm:ss具体讲解

d               月中的某一天。一位数的日期没有前导零。     dd             月中的某一天。一位数的日期有一个前导零。     ddd           周中某天的缩写名称,在   AbbreviatedDayNames   中定义。     dddd         周中某天的完整名称,在   DayNames   中定义。     M

yangyang的博客 1万+

BOM 数据模型设计

字段名数据类型必填说明物料编码 (Part Number)字符串是唯一标识,主键。建议包含分类前缀(如STD-GEN-CUS-物料名称 (Part Name)字符串是版本 (Revision)字符串是如AB1.0,与编码组合构成唯一实例。状态 (Status)枚举是设计中(Draft)已发布(Released)已归档(Archived)已作废(Obsoleted)类型 (Type)枚举是专用件(Custom)借用件(Borrowed)通用件(Generic)标准件(Standard)

Davina_yu的博客 1757

傲娇的IOS 兼容性

时间格式 ios不兼容 对于时间格式为 yyyy-MM-dd HH:mm:ss的, 需要转化为: yyyy/MM/dd HH:mm:ss 可使用: date.replace(/-/g, '/') 全局替换。 Date构造函数,参数 “-” 与 “/” 的区别? 注意,用 “/” 是0点,用 “-” 是8点。 css动画暂停 animation-play-state:paused 暂停动画i...

weixin_34032827的博客 111

中微8S6990外设开发实战:从GPIO配置到低功耗休眠的完整指南

本文提供了中微8S6990增强型8051单片机从GPIO配置到低功耗休眠的完整实战指南。详细讲解了开发环境搭建、GPIO灵活配置、定时器中断、ADC采样优化、PWM电机控制等核心外设的编程要点与避坑技巧,并重点阐述了实现超低功耗休眠的系统性外设管理策略,帮助开发者快速上手并优化产品续航。

weixin_29162439的博客 533

Ollama本地大模型部署指南:从核心原理到实战避坑

大语言模型(LLM)作为人工智能领域的核心技术,通过海量数据训练获得强大的语言理解和生成能力。其工作原理基于Transformer架构,通过自注意力机制处理序列数据,在文本生成、代码编写和对话系统等场景展现出巨大价值。随着开源模型的普及,本地部署成为关注焦点,它解决了数据隐私和定制化需求,但面临环境配置和资源管理的挑战。Ollama作为开源工具,通过封装模型格式和统一API,简化了本地部署流程,支持GPU加速和性能调优,让开发者能够快速集成到IDE和自动化脚本中,实现高效的本地AI应用部署。

weixin_30915951的博客 452

Oracle SQL 时间转字符串的坑

1. YYYY/MM/DD hh:mi:ss 十二小时值 在C#中就看不到上午下午了 YYYY/MM/DD HH24:mi:ss 这个才是二十四小时制

weixin_42765260的博客 233

注意力机制模块:二次创新:CBAM 与 ECA 融合形成 CECA 模块,参数量减少 40%

文章摘要: 本文提出一种轻量化注意力模块CECA,通过融合CBAM和ECA的优势解决模型部署中的精度与速度矛盾。CBAM虽具备通道和空间双重注意力,但参数量大;ECA轻量但缺乏空间注意力。CECA采用ECA的一维卷积替换CBAM的通道注意力部分,保留其空间注意力模块,在保持双注意力能力的同时减少40%参数量。实验表明该方案在边缘设备部署中能维持精度并提升推理速度,特别适用于YOLO等目标检测模型的轻量化改进。文章详细拆解了架构设计、代码实现及参数量优化原理,为算法工程师和嵌入式开发者提供了实用解决方案。

ZXSXJ的博客 237

Java 校验时间格式是否为 yyyy-MM-dd HH:mm:ss

微信公众号:[一起学习大数据呀]关注可学习更多奇怪的知识! 前言 产品让我添加一个导入Excel 表格并对时间格式校验:“yyyy-MM-dd HH:mm:ss”。网上的博客又参次不齐,终于找到了几篇不错的博文,借鉴参考,也顺手当笔记记录一下! 代码 /** * 校验时间格式是否为 yyyy-MM-dd HH:mm:ss * @param date * @return */pub...

Joker的博客 1万+

Python全栈入门到实战【基础篇 19】函数进阶:默认参数、递归函数与偏函数应用

本文深入探讨Python函数进阶的三大核心知识:默认参数、递归函数与偏函数。针对默认参数,揭示了可变对象作为默认值的陷阱,提出使用None替代的方案;解析递归函数的三大要素(终止条件、递归调用、问题拆解),并通过阶乘和斐波那契数列示例演示实现方法,同时给出尾递归和缓存装饰器两种优化策略;最后介绍偏函数如何通过functools.partial固化参数简化调用。这些技巧能显著提升函数在复杂场景下的灵活性与复用性,帮助开发者编写更高效的Python代码。

那些看似不起波澜的日复一日,会在某天让你看到坚持的意义 3864

[密码学实战]商密TLCP协议抓包解析与深度分析(二十九)

[密码学实战]商密TLCP协议抓包解析与深度分析(二十九)

曼岛_的博客 633

Java把数字(int或Long类型)转换成yyyy-MM-dd HH:MM:ss格式的24小时制和12小时制

目录   (1)关于Java的24小时制和12小时制 (2)把数字转成时间 (3)有趣的问题:HH:mm:ss 和  HH:MM:ss 原因: HH:MM:ss HH:mm:ss输出 结论: (4)日期元素示例 (1)关于Java的24小时制和12小时制 格式里的时如果用hh表示用12小时制,HH表示用24小时制。 例如: yyyy-MM-dd hh:mm:ss 12小时...

渴望飞的鱼的博客 4万+

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

时间格式入门:从yyyy-mm-dd hh:mm:ss开始

yyyy代表年份,如2024mm代表月份,如05(5月)dd代表日期,如20hh代表小时(24小时制),如14mm代表分钟,如30ss代表秒钟,如45这种格式清晰明了,避免了日期歧义,被广泛应用于数据库、日志记录和API接口中。

YellowSun24的博客 1076

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Oracle-时间格式化-to_char()函数;yyyy-mm-dd hh24:mi:ss和yyyy-MM-dd HH:mm:ss的区别

直接查表的时候,时间是对的: 这种写法是错的,时间都不对了,不能用yyyy-MM-dd HH:mm:ss 应该改为下面这种写法:yyyy-mm-dd hh24:mi:ss

兴趣是最好的老师 3万+

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

java hh和hh的区别_JAVA中日期 yyyy-MM-dd HH:mm:ss和yyyy-MM-dd hh:mm:ss的区别

JAVA中日期 yyyy-MM-dd HH:mm:ss和yyyy-MM-dd hh:mm:ss的区别 :HH:24小时制hh:12小时制package time;import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.Date;/*** Created by sheting on 10/20/20...

weixin_39789399的博客 893

Java中日期格式化字符串大小写区别YYYY和yyyy

Java里面: HH代表24小时制的; hh代表12小时制; MM代表月; mm代表分; DD代表 day of year 今年的第N天,dd是这个月的多少天; yyyy代表year, YYYY代表weak-year,通俗讲就是当周所在的年份,比如2019-12-29,如果这周涉及跨年,那么使用YYYY将得不到想要的结果,无论数据库查询还是web里面格式化时间。 常用格式化...

JaneYork的博客 3605

new date()标准时间转yyyy-mm-dd hh:mm 24小时制

知识点:es6的Object方法、正则表达式、循环对象等 直接贴代码: new date()标准时间转yyyy-mm-dd hh:mm 24小时制 // 扩充js的内置对象Date方法 Object.assign(Date.prototype, { switch(time) { let date = { "yy":

web前端开发 1万+

hive中时间函数 YYYY和yyyy,MM和mm,HH和hh 区别

hive sql

帅成一匹马 2981

Java yyyy-MM-dd HH:mm 与 yyyy-MM-dd hh:mm引发的大坑

项目中,以前有个需求,每隔一段时间,拉取车辆的最新坐标位置 然后根据时间就行归档、检查、清洗等操作 但是 源数据没问题,归档的数据,总是对不上,有时好,有时坏,检查了很多遍代码,发现了不少问题 但是,归档数据错误的问题,依旧存在 最后发现,同事在按时间归档的时候,使用了yyyy-MM-dd hh:mm:ss 于是乎,0-12点的数据正确,12点以后的不正确,如果出现跨12点的数据,数据完全混乱了 不是错误的错误,太坑 大写的H是二十四小时制的小时数(0-23),小写的h是十二小时制的小时数

醉逸鎏年的博客 548

Safari不能正确解析yyyy-mm-dd

一,困惑昨天写代码遇到的一个bug,在chrome上显示得好好的时间,一到Safari就提示 “invalid date”,于是回来看代码(为了一目了然,进行一些处理):var deadline = new Date("2016-06-10 23:59");这行代码是将数据库中存的日期“2016-06-10”字符串转成Date对象。二,分析当看到日期格式是yyyy-mm-dd,我联想到了yyyy/m

沉淀 3316

java mm_JAVA中日期 yyyy-MM-dd HH:mm:ss和yyyy-MM-dd hh:mm:ss的区别

HH是24小时制,hh是12小时制区别就是:大写的H是二十四小时制的小时数(0-23),小写的h是十二小时制的小时数(am/pm 1-12)//24小时制SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//12小时制SimpleDateFormat sdf1 = new SimpleDateFormat("yyy...

weixin_42527160的博客 466
上一篇: Maven构建之插件之——maven-resources-plugin
下一篇: 字节序问题之——Little-Endian,Big-Endian
至学者
博客等级 码龄9年 180粉丝 773原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值