java17日期周期格式化处理方案

 更新时间:2025年01月19日 11:30:05   作者:morris131  
Java17引入了新的日期时间格式化模式B,用于表示一天中的时间段,如上午、下午、晚上等,该模式根据CLDR定义,在不同语言环境下,该模式的输出结果会有所不同,本文给大家介绍java17日期周期格式化处理方案,感兴趣的朋友跟随小编一起看看吧

在Java 17中,确实引入了新的日期时间格式化模式,即模式字母 B,它用于表示一天中的时间段,如上午或下午。这个模式是根据Unicode标准CLDR(Common Locale Data Repository)来定义一天中的时间段的,它可以输出如“上午”、“下午”、“晚上”等时间段标识。

package com.morris.java17;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.Locale;
/**
 * 日期周期格式化
 *
 * 中文环境:需指定jvm参数-Dfile.encoding=GBK,否则会中文乱码
 */
public class DateFormatDemo {
    public static void main(String[] args) {
        // 设置本地化环境
        Locale.setDefault(Locale.ENGLISH);
        // Locale.setDefault(Locale.CHINESE);
        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("h:mm B");
        System.out.println(dtf.format(LocalTime.of(8, 0))); // 上午
        System.out.println(dtf.format(LocalTime.of(13, 0))); // 下午
        System.out.println(dtf.format(LocalTime.of(20, 0))); // 晚上
        System.out.println(dtf.format(LocalTime.of(23, 0))); // 晚上
        System.out.println(dtf.format(LocalTime.of(0, 0))); // 午夜
    }
}

在英语语言环境下,设置Locale.setDefault(Locale.ENGLISH),运行结果如下:

8:00 in the morning
1:00 in the afternoon
8:00 in the evening
11:00 at night
12:00 midnight

在中文语言环境下,设置Locale.setDefault(Locale.CHINESE),运行结果如下:

8:00 上午
1:00 下午
8:00 晚上
11:00 晚上
12:00 午夜

可见咱们的晚上是包括英美国家的evening和night的。

到此这篇关于java17日期周期格式化处理方案的文章就介绍到这了,更多相关java日期周期格式化内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用synchronized实现一个Lock代码详解

    使用synchronized实现一个Lock代码详解

    这篇文章主要介绍了使用synchronized实现一个Lock代码详解,具有一定借鉴价值,需要的朋友可以参考下。
    2017-12-12
  • Java之IO流面试题案例讲解

    Java之IO流面试题案例讲解

    这篇文章主要介绍了Java之IO流案例讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • JAVA中出现异常、抛出异常后续代码是否执行情况详析

    JAVA中出现异常、抛出异常后续代码是否执行情况详析

    当产生异常后,并在异常处理器中进行执行之后,程序会是如何的一种状态,是终止还是继续执行处理之后的代码呢,下面这篇文章主要给大家介绍了关于JAVA中出现异常、抛出异常后续代码是否执行情况的相关资料,需要的朋友可以参考下
    2024-05-05
  • Mockito+PowerMock+Junit单元测试用途解析

    Mockito+PowerMock+Junit单元测试用途解析

    本文介绍单元测试在开发和DevOps中的规范要求,详解Mockito和PowerMock的使用,包括解耦依赖、模拟行为、验证调用及参数匹配,同时说明SpringBoot测试注解(如@MockBean)的用法,并提及IDEA插件Squaretest的自动化测试生成功能,感兴趣的朋友一起看看吧
    2025-06-06
  • 如何将应用的log4j替换成logback详解

    如何将应用的log4j替换成logback详解

    无论从设计上还是实现上,Logback相对log4j而言有了相对多的改进。所以下面这篇文章主要给大家介绍了关于如何将应用的log4j换成logback的相关资料,文中介绍的很详细,需要的朋友可以参考下。
    2017-02-02
  • springboot基于Mybatis mysql实现读写分离

    springboot基于Mybatis mysql实现读写分离

    这篇文章主要介绍了springboot基于Mybatis mysql实现读写分离,需要的朋友可以参考下
    2019-06-06
  • 使用java.util.Timer实现任务调度

    使用java.util.Timer实现任务调度

    这篇文章主要为大家详细介绍了使用java.util.Timer实现任务调度,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03
  • springboot将mybatis升级为mybatis-plus的实现

    springboot将mybatis升级为mybatis-plus的实现

    之前项目工程用的是mybatis,现在需要将其替换为mybatis-plus,本文主要介绍了springboot将mybatis升级为mybatis-plus的实现,具有一定的参考价值,感兴趣的可以了解一下
    2023-09-09
  • 使用springboot aop来实现读写分离和事物配置

    使用springboot aop来实现读写分离和事物配置

    这篇文章主要介绍了使用springboot aop来实现读写分离和事物配置,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • Spring @Transactional注解失效解决方案

    Spring @Transactional注解失效解决方案

    这篇文章主要介绍了Spring @Transactional注解失效解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12

最新评论