JAVA中的SimpleDateFormat yyyy和YYYY的区别

3 篇文章 0 订阅
订阅专栏

最近有一个功能是对输入的日期格式化,设计给出的范例是 YYYY-MM-dd HH:mm:ss,于是我简单验证了一下是可以的,然后就这么在手册里写了。然后偶然发现有地方也用yyyy啊,这个到底有神马区别啊,还是随便用呢。看了下jdk,这么说的:


也就是说Y表示的是Week year,可是,这个Week year又是什么。。jdk文档贴心地给出了Examples,然而并没有什么卵用。。

经过试验,得出的结果如下:Week year意思是当天所在的周属于的年份,一周从周日开始,周六结束,只要本周跨年,那么这周就算入下一年,例如2010.12.26,日历长成这样:


12.26所在的周的最后一天是2011.1.1,这天属于2011,所以2010.12.26的Week year就是2011,用YYYY做格式化,就会得到2011.12.26。

试验代码:

public static void main(String[] args) {
    Calendar calendar = Calendar.getInstance();
    // 2014-12-26
    calendar.set(2010, Calendar.DECEMBER, 26);
    Date strDate1 = calendar.getTime();
    
    SimpleDateFormat f1 = new SimpleDateFormat("YYYY-MM-dd");
    System.out.println("Result for YYYY: " + f1.format(strDate1));
    
    SimpleDateFormat f2 = new SimpleDateFormat("yyyy-MM-dd");
    System.out.println("Result for yyyy: " + f2.format(strDate1));
}

运行结果:

Result for YYYY: 2011-12-26
Result for yyyy: 2010-12-26

这个结果是在jdk的1.7版本的试验结果,其余版本什么结果不清楚。

java version "1.7.0_75"
Java(TM) SE Runtime Environment (build 1.7.0_75-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.75-b04, mixed mode)

有些文章说本周的周四属于那一年,本周就是哪一年的,但是试出来不是这样的啊,2010.12.26的周四就在2010年,然而得出的结果仍然算是2011年的,所以我只好认为原则是只要跨年就属于下一年。。

总之,仅仅是想格式化我们普通人认识的日期,用" yyyy-MM-dd HH:mm:ss" 就够了。YYYY什么的,没事就不要用了啊。


JavaSimpleDateFormatYYYYyyyy以及HH和hh的区别注意踩坑
BADAO_LIUMANG_QIZHI的博客
01-25 833
在使用SimpleDateFormat在获取当前日期时因使用了YYYY导致20231231这个日期被格式化为20241231这里推荐在日期处理时统一使用封装工具类并指定格式化格式,避免在业务代码失误写错。在JavaSimpleDateFormat格式化日期时,YYYYyyyy之期存在细微的差异。它们都代表一年,但是yyyy代表日历年份,而YYYY代表星期,基于周的年份。这是一个细微的差异,通常情况下,两者的结果是相同的,但在跨年的第一周或最后一周可能会有差异。
SimpleDateFormat yyyyMMdd 与 yyyyMMDD
热门推荐
41981DC的博客
07-24 1万+
dd:指当月的几号 DD:指该天在全年的天数。 代码 Date date = new Date(); System.out.println("yyMMdd: "+new SimpleDateFormat("yyyyMMdd").format(date)); System.out.println("yyMMDD: "+new SimpleDateFormat("yyyyMMDD").format(date)); 结果: yyMMdd: 20200724 yyM
iOS YYYYyyyy区别
qq_28285625的博客
12-31 463
2017年1月31日 转换后变成 2018年1月31日,相差一年。这是为什么呢? 原因:YYYY 是以周为单位计算的,我们平常计算日期时最好用yyyyyyyy才是标注的年份 如果一月1日是星期一,星期二,星期三,星期四,它是在01周。如果一月1日是星期五,星期六或星期日,它在前一年的52周或53周 例子: 使用yyyy时间 NSDate *currentDateTime = [NSDatedat...
JAVADateFormat详解
最新发布
qa3629723的博客
08-09 976
这个包提供了更现代、更易于使用的类来处理日期和时间相关的任务,如 `LocalDateTime`, `ZonedDateTime`, 和其他相关类型等。`DateFormat` 允许进行日期-文本之间的转换,以及日期-时间之间的解析和格式化。Java 提供了多个 `DateFormat` 的具体子类,其最常用的是 `SimpleDateFormat`,它允许进行自定义的日期时间格式。在实际开发,我们通常会使用 `SimpleDateFormat` 或者 `DateFormat` 的其他子类,如 `
SimpleDateFormat 时间解析出错 “YYYY“ “yyyy“有什么不同?
weixin_45429720的博客
03-02 472
SimpleDateFormat 传入的参数大小写字母是有讲究的,踩过的坑是:解析年份出错 看下图 Y 表示的是weak year,他是什么含义呢?jdk下面有案例,但是没有给到特殊情况,我也是看其他博客的描述,然后自己实验了一下,发现他的含义是这样的 如果这一天所在的一周,跨年了,那这一天算是下一年的,月份和日不会变,只有年份会增多一年,所有会有那几天会解析错年份,注意:每周从周日开始 这是jdk.18 开发手册里面 SimpleDateFormat 这个类传入参数的年月日具体含义 代码测试 packa
YYYYyyyy区别
qq_36622473的博客
01-10 9968
YYYYyyyy区别 一、YYYY是以周来计算年的,也就是说当天所在周属于的年份,一周从周日开始算计算,周六结束,只要本周跨年,那么这一周就算下一年的。 二、如果用Y会是这周的年份,y才是标准的年份。 ps:官方文档没说明这两种的区别,在使用两者时最好还是使用“yyyy-MM-dd”这种格式,避免出现异常情况。 ...
SimpleDateFormatYYYYyyyy区别
justdoit_justgo的博客
05-13 2111
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); 四个 SimpleDateFormat format = new SimpleDateFormat("YYYY-MM-dd"); 四个大Y表示当前时间 所在周的 所在年份 例如: SimpleDateFormat format = new Si...
简单了解JAVA SimpleDateFormat yyyyYYYY区别
08-19
JAVA SimpleDateFormat yyyyYYYY区别 JAVA SimpleDateFormat 日期格式化是每个 JAVA 开发者都需要了解的知识点之一。在日期格式化,我们经常使用 yyyyYYYY 两个格式符,那么它们之间有什么区别...
java代码-SimpleDateFormat YYYY解析问题
07-15
Java编程语言,`SimpleDateFormat` 是一个非常重要的日期时间格式化类,它允许我们按照自定义的模式来解析和格式化日期。在标题提到的"SimpleDateFormat YYYY解析问题",通常指的是使用 `YYYY` 作为日期模式时...
java代码-SimpleDateFormat YYYY显示问题
07-15
首先,让我们理解一下`SimpleDateFormat`的"YYYY"和"yyyy"这两个符号的区别。在`SimpleDateFormat`的日期和时间模式字符串: - "yyyy" 代表的是四位数的年份,例如2023。这是最常见的表示年份的方式。 - "YYYY...
java使用SimpleDateFormat格式化日期YYYY跨年
forever_xw_的博客
12-27 900
java使用SimpleDateFormat格式化日期YYYY跨年 最近遇到因为SimpleDateFormat格式化日期遇到年份yyyyYYYY混淆引出的跨年问题,正好记录一下: - 通常情况(12.25星期六): 运行结果(正常): - 跨年问题(12.26星期天): 运行结果(跨年): 结论:两者输出差了一年,并不符合我们的预期。因此在通常情况下,格式化日期尽量使用yyyy 原因:之所以会出现错误是因为,在日期格式里,yyyy使我们通常所用的时间,而YYYY则是week year(当前周所
JAVA SimpleDateFormat日期格式
Jasonshieh
08-03 736
G 年代标志符 y 年 M 月 d 日 h 时 在上午或下午 (1~12) H 时 在一天 (0~23) m 分 s 秒 S 毫秒 E 星期 D 一年的第几天 F 一月第几个星期几 w 一年第几个星期 W 一月第几个星期 a 上午 / 下午 标记符 k 时 在一天 (1~24) K...
SimpleDateFormatparse方法YYYYyyyy区别
qq_28285625的博客
03-09 1293
yyyy:代码:运行结果:yyyy parse出来的结果就是当前的时间。--------------------------------------------YYYY:代码:输出结果:结果为什么这么奇怪呢?经过研究YYYY表示的是当前时间所在的年份的一月一号所在的那个星期第一天的日期也就是星期日那一天的日期。2018年1月1号所在的星期的第一天是2017年12月31号。2017年1月1号所在的...
SimpleDateFormat的pattern模式YYYYMMDDHHmmSS
cnq2328的专栏
01-11 1188
参数format格式详细用法: 格式字符 关联属性/说明  d ShortDatePattern  D LongDatePattern  f 完整日期和时间(长日期和短时间)  F FullDateTimePattern(长日期和长时间)  g 常规(短日期和短时间)  G 常规(短日期和长时间)  m、M MonthDayPattern  r、R RFC1123Pattern 
SimpleDateFormat yyyy-MM-dd HH:mm:ss.SSS说明
weixin_34008933的博客
08-01 5004
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");转换的格式:yyyy是完整的西元年,MM是月份,dd是日期, 至於HH:mm:ss.SSS 时分秒ps:为什麽有的格式大写,有的格式小写,那是怕避免混淆, 例如MM是月份,mm是分; HH是24小时制,而hh是12小时制 ss是秒,SSS是毫秒 具体大小写含...
SimpleDateFormatjava日期格式
烟雨青山
11-27 653
SimpleDateFormat sft=new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒");
SimpleDateFormatYYYYmmDDhhMMss大小写问题-获取不到正确时间
zhangsai13的博客
07-12 7272
SimpleDateFormat sf = new SimpleDateFormat("YYYYmmDDhhMMss"); String transTime = "20"+ "INN15090588ZM_802310048993424".substring(3, 5) + "0906110059"; System.out.println("transTime"+transTime); try...
Java简单的日期格式化
薆的天空
07-19 558
实现日期格式化主要使用的是SimpleDateFormat类,常用的如下 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd"); yyyy表示
写文章

热门文章

  • JAVA中的SimpleDateFormat yyyy和YYYY的区别 25227
  • Idea设置默认不折叠一行的函数 24709
  • 线程等待的几种方式 16403
  • maven跳过插件 16364
  • quartz和数据库断连接的解决办法 8472

分类专栏

  • C语言 2篇
  • 胡思乱想 1篇
  • 计算机基础
  • kettle 2篇
  • 数据库 2篇
  • maven 1篇
  • java 3篇
  • 其他 7篇

最新评论

  • Idea设置默认不折叠一行的函数

    m0_72022546: 谢谢,有用、

  • maven跳过插件

    Kai Havterz: 建议百度 maven插件绑定

  • quartz和数据库断连接的解决办法

    单纯好青年: oracle的怎么处理啊大佬?

  • quartz和数据库断连接的解决办法

    什么仇什么怨: 看了这么多,就你的解决了我的问题。牛逼,给力

  • maven跳过插件

    austin1000: 有两个问题想请教下: 1、是不是在plugin里面添加了插件的话,mvn package的时候这些插件都会被启动? 2、如果第1条成立,那在不改动pom文件的情况下,如果想在mvn package的时候关掉某个插件,就像你写的在properties里新增一个开关变量并作为plugin的configuration.skip的值,从而就可以在mvn package的时候使用-D来控制该插件的开关?

最新文章

  • JProfiler远程监控
  • java变参
  • maven跳过插件
2015年16篇
2008年3篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

玻璃钢生产厂家成都玻璃钢浮雕雕塑批发湖北玻璃钢卡通雕塑阿狸价格佛山玻璃钢动物雕塑厂家现货玻璃钢基督教雕塑费用唐山商场美陈制作公司玻璃钢彩绘烤漆雕塑本溪玻璃钢花盆定制毕节玻璃钢座椅雕塑多少钱秦皇岛玻璃钢雕塑制作厂家淮阴景区绿化玻璃钢花盆湘西玻璃钢花盆花器庭院玻璃钢抽象雕塑河南玻璃钢雕塑报价河南玻璃钢人物雕塑报价商场开业美陈回顾大象玻璃钢雕塑设计制作黄冈户外玻璃钢雕塑厂家grg和玻璃钢雕塑材质宁波环保玻璃钢雕塑订做价格江西抽象玻璃钢雕塑批发湘潭玻璃钢座椅雕塑宽城区玻璃钢雕塑工程施工上海玻璃钢昆虫雕塑玻璃钢雕塑乌鲁木齐福建农耕系列玻璃钢雕塑定制校园玻璃钢雕塑制作厂家中山市通盛玻璃钢雕塑秦皇岛玻璃钢仿铜雕塑厂家仿古玻璃钢雕塑定制天水广场玻璃钢雕塑香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化