首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用DateTimeFormatterBuilder解析LocalDateTime短年格式dd-mm-YY HH:mm

DateTimeFormatterBuilder是Java 8中的一个类,用于构建自定义的日期时间格式化器。它提供了一种灵活的方式来解析和格式化日期时间对象。

在给定的问答内容中,我们需要使用DateTimeFormatterBuilder来解析一个短年格式的LocalDateTime对象,格式为dd-mm-YY HH:mm。

首先,我们需要创建一个DateTimeFormatterBuilder对象,并使用其方法来定义日期时间格式。在这种情况下,我们需要使用两个字段:日和月,以及两个时间字段:小时和分钟。

以下是一个示例代码,演示如何使用DateTimeFormatterBuilder来解析短年格式的LocalDateTime对象:

代码语言:java
复制
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeFormatterBuilder;
import java.time.format.ResolverStyle;
import java.time.temporal.ChronoField;

public class DateTimeParsingExample {
    public static void main(String[] args) {
        String dateTimeString = "01-02-21 12:34";

        DateTimeFormatter formatter = new DateTimeFormatterBuilder()
                .appendPattern("dd-MM-")
                .appendValueReduced(ChronoField.YEAR_OF_ERA, 2, 2, 2000)
                .appendPattern(" HH:mm")
                .toFormatter()
                .withResolverStyle(ResolverStyle.STRICT);

        LocalDateTime dateTime = LocalDateTime.parse(dateTimeString, formatter);

        System.out.println(dateTime);
    }
}

在上述代码中,我们首先定义了一个日期时间字符串dateTimeString,它符合短年格式dd-mm-YY HH:mm。

然后,我们创建了一个DateTimeFormatterBuilder对象,并使用appendPattern方法来添加日期和时间的格式。appendValueReduced方法用于将年份字段缩减为两位数,并指定了缩减的范围和基准年份。最后,我们使用toFormatter方法将DateTimeFormatterBuilder对象转换为DateTimeFormatter对象,并使用withResolverStyle方法设置解析器的解析样式为STRICT。

最后,我们使用LocalDateTime.parse方法将日期时间字符串解析为LocalDateTime对象,并将结果打印出来。

这是一个完整的示例,展示了如何使用DateTimeFormatterBuilder解析短年格式的LocalDateTime对象。在实际应用中,您可以根据需要进行适当的调整和扩展。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

JSR310新日期API(三)-日期时间格式化与解析

("yyyy-MM-dd HH:mm:ss") DateTimeFormatter.ofPattern("yyyyMM月dd日 HHmm分ss秒") 至于日期时间实例的格式化,主要通过下面的两个方法...月dd日 HHmm分ss秒"); LocalDateTime localDateTime = LocalDateTime.now(); String value = formatter.format...月dd日 HHmm分ss秒"); String dateTime = "201901月05日 16时28分01秒"; LocalDateTime parseResult = LocalDateTime.parse...pattern必须是合法日期时间表示格式(例如年份用yyyy表示),并且严格区分日期时间、只有日期属性和只有时间属性三种不同的情况,如果使用yyyy-MM-dd HH:mm:ss模式创建的DateTimeFormatter...其实JSR-310中的日期时间API的格式化和解析和旧有的日期时间API的格式化和解析从本质上是没有区别的,都是字符串解析和转换的游戏,但是个人是推荐使用JSR-310中的日期时间API的格式化和解析

1.5K20

Date转换

("yyyyMMMMd日 E hh:mm a", Locale.CHINA))); // String转Date String dateStr = "2021一月6日 星期三 20:38 下午";...LocalDateTime parse = LocalDateTime.parse(dateStr, DateTimeFormatter.ofPattern("yyyyMMMMd日 E HH:mm a...例如, "d MMM uuuu"将格式为2011-12-03,为“201112月3日”。 从模式创建的格式化程序可以根据需要多次使用,它是不可变的并且是线程安全的。...如果字母数为2,则使用一个reduced两位数的形式。 对于打印,这将输出最右边的两位数字。 对于解析,这将使用基数值2000解析,导致一在2000到2099之间的范围内。...如果字母数为1,2或3,则输出名称。 如果字母数为4,则输出全名。 五个或更多的字母抛出IllegalArgumentException 。 偏移X和x :这将根据模式字母的数量格式化偏移量。

1.3K20

java 时间转换成字符串_JAVA8时间新特性时间与字符串直接的转换

这里就不多数,来一段经常会用的时间与字符串转换的代码 DateTimeFormatter f = DateTimeFormatter.ofPattern(“yyyy-MM-dd HH:mm:ss”);...//时间转为字符串 LocalDateTime date =LocalDateTime.now(); String str = date.format(f); // 2014-11-07 14:10:36...//字符串转为时间 date = LocalDateTime.parse(str,f); 这把你从格式化器自己的格式化和解析方法中隔离开来。...如果你想控制格式化的语言环境,调用格式化器的withLocale(Locale)方法。相似的方式可以允许你控制格式化的历法系统、时区、十进制数和解析度。...如果你需要更多的控制权,查看DateTimeFormatterBuilder类吧,它允许你一步一步的构造更复杂的格式化器。它还提供大小写不敏感的解析,松散的解析,字符填充和可选的格式

96220

Java日期问题汇总

日期格式化的跨年问题 通常格式化日期时,都是使用的YYYY/MM/dd来格式化日期,但是在遇到跨年日期时,就会遇到很神奇的现象,如下: 1 2 3 4 5 6 7 8 9 10 11 final...-27用YYYY/MM/dd表示:2021/12/27 可以看到,只是一天之差,格式化后却相差了整整一!...原因是格式化字符串中的D指的是一的第几天,而这里用了两个D,表明天数是两位数(不足两位数会补前缀0)。...如果使用了前文提及的日期,也就是说当前属于一的100天以上的天数(即天数是3位数),与格式化指定的两位数冲突,因此抛出异常。 这里想要的是每个月的天数,应当使用d,而不是大写的D。...(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"))); System.out.println(zonedDateTime.toLocalDateTime

1.4K10

JAVA8实战 - 日期API

parse = LocalDateTime.parse("2021-11-11 15:30:11", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"...的格式化yyyy-MM-dd报错: 第一次使用,最容易出现问题的diamante如下的形式所示,比如我们 LocalDateTime parse2 = LocalDateTime.parse("2021...,比如yyyy-MM-dd 格式化 2020-05-12 12:15:33 这种格式就会出现溢出,解决办法:使用正确的格式即可 对于上面几个问题的根本解决办法 原因:因为localdatetime 在进行格式化的时候如何...from TemporalAccessor StackFlow地址:StackFlow无法解析文本:无法从TemporalAccessor获取LocalDateTime StackFlow地址:解析LocalDateTime...因此在格式化时“ 「HHmm:ss」”是毫无意义的,如果我们的格式化参数不符合下面的规则,此方法会抛出异常并且说明不支持对应的格式化操作。

1.6K30

Oracle实践|Oracle内置函数之日期与时间函数

默认返回格式DD-MM-YY。CURRENT_DATE:返回当前日期(不含时间部分)。返回格式DD-MM-YY,类似SYSDATE。...返回格式DD-MM-YY HH24:MI:SS.FF。LOCALTIMESTAMP:返回当前日期和时间,不包括时区信息。返回格式DD-MM-YY HH24:MI:SS.FF。...#GUID-E118F121-A0E1-4784-A685-D35CE64B45572 日期/时间格式化/解析类函数上面也讲过,对于日期函数,我们多数都是在解析中或者转换中,以符合我们的业务展示需求。...format_model(可选):定义字符串中日期和时间元素的格式模型。如果省略,Oracle会尝试使用默认的日期格式进行解析,但这可能导致错误,特别是当字符串格式与数据库的默认格式不匹配时。...当我们使用转换函数时,即使我们写了日期格式,也会补充时间格式,例如DT1;当我们使用转换函数时,使用格式不足支撑数据则会报错,例如DT2;当我们使用转换函数时,使用的数据值不满足格式时,会补充时间格式

1.2K41

Java 8 新特性|(新)日期API_格式

一、java.time.format 包:类 类 说明 DateTimeFormatter 用于打印和解析日期时间对象的格式化程序 DateTimeFormatterBuilder 创建日期时间格式化样式的构建器...DecimalStyle 日期和时间格式使用的本地化十进制样式 二、java.time.format 包:枚举 枚举 说明 FormatStyle 包含了本地化日期,时间或日期时间格式器的样式的枚举...类 DateTimeFormatter 类用于打印和解析日期时间对象的格式化器,它是格式化日期时间的最重要的类。...此类提供打印和解析的主要应用程序入口点,并提供 DateTimeFormatter 的常见模式 使用预定义的常量,比如 ISO_LOCAL_DATE 使用模式字母,例如 uuuu-MMM-dd 使用本地化样式...类的静态方法 parse() 将刚刚自定义的日期时间格式解析回来: package com.sjh.test.java8.time; import java.time.LocalDateTime;

35220

为什么建议你使用LocalDateTime而不是Date?

【java8新提供的类】 java8新的时间API的使用方式,包括创建、格式化、解析、计算、修改 为什么需要LocalDate、LocalTime、LocalDateTime Date如果不格式化,打印出的日期可读性差...parse方法实际调用alb.establish(calendar).getTime()方法来解析,alb.establish(calendar)方法里主要完成了 1.重置日期对象cal的属性值 2.使用..., pattern="yyyy-MM-dd HH:mm:ss")注解即可,如下: @JsonFormat(shape=JsonFormat.Shape.STRING, pattern="yyyy-MM-dd...HH:mm:ss") protected LocalDateTime gmtModified; 对前端传入的日期进行格式化在LocalDateTime字段上添加@DateTimeFormat(pattern...= "yyyy-MM-dd HH:mm:ss")注解即可,如下: @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") protected LocalDateTime

2K10

程序员必备:Java日期处理的十个坑

格式后 2020-12-31 解析: 为什么明明是201912月31号,就转了一下格式,就变成了202012月31号了?...因为YYYY是基于周来计算的,它指向当天所在周属于的年份,一周从周日开始算起,周六结束,只要本周跨年,那么这一周就算下一的了。正确姿势是使用yyyy格式。 ?...");System.out.println("2019-12-31 转 yyyy-MM-dd 格式后 " + dtf.format(testDate)); 三、Java日期格式hh的坑。...因为hh是12制的日期格式,当时间为12点,会处理为0点。正确姿势是使用HH,它才是24小时制。...格式后 2019-12-365 解析: DD和dd表示的不一样,DD表示的是一中的第几天,而dd表示的是一月中的第几天,所以应该用的是dd。

1.4K20

LocalTime 类的使用方法

需要注意的是,当使用parse ( )方法解析字符串时,该字符串要符合默认的时、分、秒格式要求。通过文件5-22可以看出,LocalTime类的方法的使用与LocalDate基本一样。...需要注意的是,LocalDateTime默认的格式是2020-02-29T21:23:26.774, 这可能与人们经常使用格式不太符合,所以它经常与DateTimeFormatter一起使用指定格式,...mm月dd日hhmm分ss秒”)System.out.println"(格式化后的日期时间为: "+now.format(ofPattern) ); 在文件5-3中,第6行代码定义了一个名称为now...行代码使用toLocalTime( )方法将now转换为相应的LocalTime 实例,第13~14行代码使用DateTimeFormatter的ofPattern( )方法将时间格式指定为“yyy ...mm月dd日hhmm分ss秒”,第15行代码使用LocalDateTime的format( )方法将now的时间按指定格式打印。

83020
领券