关于时间格式的大小写

YYYY-MM-dd 与 yyyy-MM-dd

Calendar calendar = Calendar.getInstance();
calendar.set(2019, Calendar.DECEMBER, 31);

Date testDate = calendar.getTime();

SimpleDateFormat dtf = new SimpleDateFormat("YYYY-MM-dd");
System.out.println("2019-12-31 转 YYYY-MM-dd 格式后 " + dtf.format(testDate));

输出结果:

2019-12-31 转 YYYY-MM-dd 格式后 2020-12-31

解析

为什么不是 2019-12-31 而是 2020-12-31?这是因为 ‘YYYY’ 是按照基于周来计算的年的,它指向当天所在周属于的年份,一周从周日开始算起,周六结束,只要本周跨年,那这一周就算下一年的了。正确姿势是使用 ‘yyyy’ 格式。

来看看正确姿势

Calendar calendar = Calendar.getInstance();
calendar.set(2019, Calendar.DECEMBER, 31);

Date testDate = calendar.getTime();

SimpleDateFormat dtf = new SimpleDateFormat("yyyy-MM-dd");
System.out.println("2019-12-31 转 yyyy-MM-dd 格式后 " + dtf.format(testDate));

输出结果:

2019-12-31 转 yyyy-MM-dd 格式后 2019-12-31

yyyy-MM-dd 中的MM为什么是大写?

yyyy-mm-dd 是标识 “年-月-日”,那 yyyy-MM-dd 是为了区分 HH:mm:ss 中的mm(分)
那 HH:mm:ss 中的 HH 为什么大写? 是为了区分 12小时制与24小时制
h 代表 12小时制,H 代表24小时制。

yyyy-M-d H : m : s

有时候会看到这样的格式,它们的区别是是否有前导零,H,m,s表示非零开始,HH,mm,ss表示从零开始。比如:凌晨1点2分,HH:mm:ss 表示 01:02,H:m 表示 1:2

yyyyy/yyy/yy/y

yyyyy/yyy/yy/y 显示为:2020/2020/20/0 ,yyy 与 yyyy 表示的是一样的,只是为了便于理解一般都写成 yyyy,yy 表示 年份后两位,y 表示年份最后一位。

MMMM/MMM/MM/M

MMMM/MMM/MM/M 显示为:一月/一月/01/1 ,其中 MMMM 显示全程,MMM 显示缩写,但中文都是一样的,英文是 January/Jan

dddd/ddd/dd/d

dddd/ddd/dd/d 显示为:星期三/周三(有的语言显示“三”)/01/1,其中 dddd 显示全程,ddd 是简称,dd/d 表示的是几号。

HH/H/hh/h

HH/H/hh/h 显示为:01/1/01 AM/1 AM

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值