Java中获得特定格式的时间数据以及常用时间格式符汇总

日期格式化

定义:使时间按照特定模式输出
学习该章节之前需要学习Java的时间相关的类的相关知识(链接: Java中时间相关的类和方法详解

1.format()方法(属于String的一个类方法)

String format(格式化模式,时间数据列表);

该方法返回一个String对象,其实体是“时间数据列表”按照"格式化模式"排列的字符序列。

”格式化模式“是一个用双引号括起来的字符序列,该字符序列中的字符由时间格式符普通字符所构成。例如:

"日期:%ty-%tm-%td"
  • 时间格式符是一种代表指定格式某种时间信息的符号,如:“%ty”、“%tm”。其中"%tm"就是代表二位形式几月,如;01、02、03……11、12

  • 普通字符指时间格式符除外的所有字符,如:“日”、“期”、“:”、“-”。这些字符虽然和日期的表达有关,如”日“和”期“两个字,但是却并没有具体的时间信息如;1月2日。这种不包含具体时间信息的字符就是普通字符。

    示例:

    LocalDate date=LocalDate.now();
    String s=String.format("%tY年%tm月%td日",date,date,date);
    

    假设当前日期是2024-5-12,那么s的实体就是"2022年02月17日"

注意

要保证,format()方法中”格式化模式“中的时间格式符的个数与”日期列表“中列出的日期个数相同。可以像例子中一样,使用逗号分隔的LocalDate对象,默认按照从左到右,使用“格式化模式”中的时间格式符来格式化“日期列表”中对应的时间对象,而普通字符保留原样。

如果希望多个时间格式符的数据都从一个时间对象中获得,可以在“格式化模式”中使用"<“,比如,”%ty-%<tm-%<td"中的3个时间格式符将会格式化同一个日期,即含有"<"的格式符将会和它前面的时间格式符一起格式化同一个日期

String s=String.format("%ty年%<tm月%<td日",date);
//这样三个时间格式符就可以使用一个时间对象了

时间格式符

常用时间格式符含义
%tY4位形式的第几年,如1999、0012、2021(带前导零)
%ty两位形式的第几年,如99、02(带前导零)
%tm两位形式的第几月,如01、11(带前导零)
%td两位形式的当月的第几天,01-31(带前导零)
%tB当前环境下的第几月的全称,如US环境下,“January”
%tb当前环境下的第几月的简称,如US环境下,“Jan”、“Feb”
%tA当前环境下的星期几的全称,如"Sunday"
%ta当前环境下的星期几的简称,如"Sun"、“Mon”
%tH两位形式,24小时制的第几小时,00-23(带前导零)
%tI两位形式,12小时制的第几小时,1-12
%tM两位形式的第几分钟,00-60(带前导零)
%tS两位形式的第几秒,00-60(带前导零)
%tN九位形式的第几纳秒,000000000-999999999(带前导零)
%tp当前地区的时间是上午还是下午,如在中国," 上午"
特殊时间格式符代表几个日期格式符组合在一起
%tR等价于 %tH:%tM
%tT等价于 %tH:%tM:%S
%tr等价于 %tI:%tM:%tS%tp(%tp的表达形式与地区有关)
%tD等价于 %tm/%td/%ty
%tF等价于 “%tY-%tm-%td”
%tc等价于 “%ta %tb %td %tT %tZ %tY” ("%tZ"好像不是时间格式符,会报错)

获取特定地区的星期格式

不同区域的星期表示方法不同。如,星期四在美国用Thu(Thursday)作为简称(全称),在日本用”木“(木曜日)作为简称(全称)。

可以使用format()方法的一个重载方法,指定特定地区的星期格式

String format(Locale locale,格式化模式,日期列表);

locale是Locale类的对象,用于表示地域。

Locale类的Static常量都是Locale对象。如:Locale.US表示美国,(US就是Locale的一个Static常量)Locale.JAPAN表示日本。

String s=String.format(Locale.US,"%tA",date);
//若date中的数据是星期四,那么s="Thursday"

如果不设置特定地区,那么locale会读取系统的地区设置。如在中国,locale=Locale.CHINA

  • 14
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

EEEzhenliang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值