时间戳的大小写的坑

​最近有个很有意思的问题,就是我们报表打印时间会有点问题,就是2023年12月31日,打印出来会变成2024年12月31日,但是别的日期没问题,前一天后一天都没问题,甚至时间跨度大一点都没问题。
实际上就是处理时间戳格式,年份的时候用的是YYYY,实际涉及到时间戳格式的处理的都有对应的大小写。按理来说就是一个大小写的问题怎么会有这样的差别,那差别的依据处理过规则又是什么?

首先是年份,最常用的是小写yyyy,如果用的是大写那采用的是周年制,顾名思义这个年份还要看周的限制,假如对应的日期所在的周跨年了,那这个年也要跟着“加一”。就比如这个2023年12月31日为例子,看起来12月31日是周天,没有跨周,为什么还要“加一”。

以为根据西方一些国家的习惯,以周日作为一周的第一天,所以问我们看一些日历,会把周日放在最前面,2023年12月31日恰好是周日,作为2024年第一周的开始,自然把年份向前进一位。
yy: 年的后2位 yyyy: 完整年 YYYY周年制

那月份呢?MM代表月,显示为1-12。小写的mm代表的是时间单位“分”2位.

日期好说,就用小写dd就可以,结合在一起符合我们日常使用习惯的日期显示就变成了“YYYY-MM-dd”。如果精确到秒的话格式则是“YYYY-MM-dd HH:mm:ss”。这里就又有疑问了,为什么这个HH代表小时“几点”要大写,以为hh是12小时制。

HH 24小时制 hh12小时制

这里也会有个问题,就是用错的情况下,所有时间在上午显示转换是正常的,但是下午的就会后我们直觉的“几点”有差异。但是这个要比2023年12月31日,周年制要好弄一点,我这个“周日是一周的第一天”这个规则,而且还是属于国际标准下的一个标准之一,属实让我当天没想开,之前只是知道如果这一周跨周了不行,但没想当这一周的开始和结尾是什么?

我的公众号:我是坑货

  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值