SimpleDateFormat-时间格式化中的大小写字符

本文详细介绍Java中SimpleDateFormat类的使用方法,包括日期格式化的常见格式、字符及复串的含义,以及设置时区的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、SimpleDateFormat:

  这个类是用来格式化date类型数据为指定格式的时间的

  使用的而时候,总是区分不清 yyyy-mm-dd yyyy-MM-dd

  而使用不同的大小写字符格式化出来的时间是不一样的

  常用格式:yyyy-MM-dd HH:mm:ss (年-月-日 时:分:秒)

 

二、字符含义:有兴趣可以查看SimpleDateFormat的源码注释,详细有例

  1、yy表示Year, Y表示Week Year,计算方式不一样,通常使用【y】

  2、MM是为了和分钟的m区分,Month in year

  3、dd是Day in month,D是Day in year

  4、HH是24小时制Hour in day,hh是12小时制Hour in am/pm

  5、mm是分,Minute in hour

  6、ss是秒Second in minute,S是Millisecond

  7、aa是Am/pm marker

 

三、复串含义:

  1、MM复串是位数不够补足的,只写M的话,1月是不会显示01月的

 

四、心法:

  使用的时候知道了每个字符大小写代表的意义,就可以在使用的时候按位匹配,就知道时间格式的是否正确

 

五、大坑:时区设置问题

  SimpleDateFormat sdf = new SimpleDateFormat('yyyy-MM-dd HH:mm:ss',locale.CHINA);

  看着完美无懈可击,输出会发现,和你预想的时间完全不同,就是locale得设置问题导致的

  locale我的理解是设置的中英文,一般时间没有中文设置为English即可

  正确得姿势如下:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
sdf.setTimeZone(TimeZone.getTimZone("GMT+8"));

  东八区!!!

  

转载于:https://www.cnblogs.com/hackxiyu/p/9448897.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值