首页 > 其他分享 >LocalDate中季度的使用

LocalDate中季度的使用

时间:2023-06-13 21:35:23浏览次数:42  
标签:format appendValue 使用 季度 System DateTimeFormatter 2023 LocalDate

季度字符串转LocalDate


// 方式一
DateTimeFormatterBuilder builder = new DateTimeFormatterBuilder();
DateTimeFormatter formatter = builder.appendValue(ChronoField.YEAR_OF_ERA, 4, 10, SignStyle.EXCEEDS_PAD)
    .appendLiteral("-Q")
    .appendValue(IsoFields.QUARTER_OF_YEAR, 1)
    .appendLiteral("-")
    .appendValue(IsoFields.DAY_OF_QUARTER,2)
    .toFormatter(Locale.CHINA);
LocalDate parse = LocalDate.parse("2023-Q2-73", formatter);
System.out.println("parse = " + parse); //parse = 2023-06-12

// 方式二
String s = "2023-Q2";
LocalDate start = LocalDate.of(
        Integer.parseInt(s.substring(0, 4)),
        Integer.parseInt(s.charAt(6)+"") * 3 - 2, 1);
LocalDate end = LocalDate.of(
        Integer.parseInt(s.substring(0, 4)), Integer.parseInt(s.charAt(6)+"") * 3, 1)
        .with(TemporalAdjusters.lastDayOfMonth());
System.out.println("start = " + start + "; end = " + end); // start = 2023-04-01; end = 2023-06-30

LocalDate转为季度字符串

//方式一
DateTimeFormatterBuilder builder = new DateTimeFormatterBuilder();
DateTimeFormatter formatter = builder.appendValue(ChronoField.YEAR_OF_ERA, 4, 10, SignStyle.EXCEEDS_PAD)
    .appendLiteral("-Q")
    .appendValue(IsoFields.QUARTER_OF_YEAR, 1)
    .toFormatter(Locale.CHINA);
String format = LocalDate.now().format(formatter);
System.out.println("format = " + format); // format = 2023-Q2

//方式二
DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy-qq");
        String format1 = LocalDate.now().format(pattern);
        System.out.println("format = " + format); // format = 2023-02

//方式三
DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy-qqq");
String format = LocalDate.now().format(pattern);
System.out.println("format = " + format); //format = 2023-2季度

//方式四
DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy-qqqq");
String format = LocalDate.now().format(pattern);
System.out.println("format = " + format); //format = 2023-第二季度

//方式五
DateTimeFormatter formatter = builder.appendValue(ChronoField.YEAR_OF_ERA, 4, 10, SignStyle.EXCEEDS_PAD)
        .appendLiteral("-Q")
        .appendValue(IsoFields.QUARTER_OF_YEAR, 1)
        .appendLiteral("-")
        .appendValue(IsoFields.DAY_OF_QUARTER,2)
        .toFormatter(Locale.CHINA);
String format = LocalDate.now().format(formatter);
System.out.println("format = " + format); //format = 2023-Q2-73 二季度第73天


标签:format,appendValue,使用,季度,System,DateTimeFormatter,2023,LocalDate
From: https://www.cnblogs.com/walkAlwaysInCode/p/17472861.html

相关文章

  • Swagger的简单使用
    1、引入依赖<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.9.2</version></dependency><dependency><group......
  • [android]使用线控耳机来操控应用功能
    使用线控耳机来操控应用功能  实现原理:通过广播拦截来实现。 (一)定义1个广播拦截器,用来拦截线控耳机按键产生的广播事件。 importandroid.content.BroadcastReceiver;importandroid.content.Context;importandroid.content.Intent;importandroid.os.Bundle;importandro......
  • Java使用for嵌套循环打印九九乘法表
    第一步:构思观看九九乘法表,并使用计算机思维发现其规律。(1)首先,我们需要知道Java的输出可以控制里面的结果在不在一行,所以我们需要观察行与行之间的规律。我们可以把乘法看成b×a=c(2)然后,我们看第二行可以发现“a=2”而且“a=2”在第二行没有变,而“b”在发生变化。并且看第......
  • Java中@Transactional 注解使用注意事项
    隔离级别关键词原子性(Atomicity):事务是数据库的逻辑工作单位,它对数据库的修改要么全部执行,要么全部不执行。一致性(Consistemcy):事务前后,数据库的状态都满足所有的完整性约束。隔离性(Isolation):并发执行的事务是隔离的,一个不影响一个。如果有两个事务,......
  • windows下使用minio搭建s3存储,使用laravel和postman进行测试
    1、下载服务端https://dl.min.io/server/minio/release/windows-amd64/minio.exe2、启动服务minio.exeserverd:\data\minio--console-address:9090 可以看到上面有两块ip,分别是9000和9000端口,其中9090是后台管理端地址的端口,9000是前台接口端口3、创建bucket4......
  • JavaCV音视频开发宝典:使用JavaCV读取海康平台或海康网络摄像头sdk回调视频TS码流并解
    《JavaCV音视频开发宝典》专栏目录导航《JavaCV音视频开发宝典》专栏介绍和目录​前言两年前博主写了如何利用JavaCV解析各种h264裸流,《JavaCV音视频开发宝典:使用javacv读取GB28181、海康大华平台和网络摄像头sdk回调视频码流并解析预览图像》,但是随着时间变化,各个厂商sdk也......
  • tcpdump工具使用
    tcpdump采用命令行方式对接口的数据包进行筛选抓取,其丰富特性表现在灵活的表达式上。注意,tcpdump只能抓取流经本机的数据包,不带任何选项的tcpdump,默认会抓取第一个网络接口,且只有将tcpdump进程终止才会停止抓包。例如:1234#显示发往172.18.0.1服务器的数据,端口号指......
  • foxmail过滤器使用
    先在登陆邮件那里新建文件夹,在点击菜单三横那里如图,选择工具,选择过滤器,点击新建,然后照此图做下去,做好后的效果是谁的邮件自动到刚才新建的文件夹里面。 ......
  • 视频汇聚融合平台EasyCVR使用国标级联出现云台控制异常的解决方法
    EasyCVR视频融合平台基于云边端协同一体化架构,具备强大的数据接入、处理及分发能力,平台可提供视频直播、录像、回放、检索、云存储、平台级联、告警、集群、H.265自动转码等功能。有用户反馈,使用EasyCVR通过国标级联到另一个EasyCVR,上级平台使用云台控制出现返回失败的问题,如下......
  • Git(分布式版本控制系统)在Windows下的使用-将代码托管到开源中国(oschina)
    一、Git是什么?    Git---Thestupidcontenttracker,傻瓜内容跟踪器。Git是目前世界上最先进的分布式版本控制系统。二、SVN与Git的最主要的区别?     SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务......