首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >爪哇DateTimeFormatter 'OR'?

爪哇DateTimeFormatter 'OR'?
EN

Stack Overflow用户
提问于 2022-06-27 15:00:08
回答 2查看 63关注 0票数 0

是否有一种方法可以编写解析器“任意”两个可选部分之一的DateTimeFormatter模式?比如(MMMM-d-(yy OR yyyy))?

举个例子:

代码语言:javascript
复制
val formatter = DateTimeFormatter.ofPattern("MMMM-d-[yyyy][yy]");
System.out.println(formatter.parse("June-27-2022")); // {},ISO resolved to 2022-06-27
System.out.println(formatter.parse("June-27-22")); // {},ISO resolved to 2022-06-27
System.out.println(formatter.parse("June-27-")); // {MonthOfYear=6, DayOfMonth=27},ISO

我想解析短(yy)或长(yyyy)年格式。我的模式的问题是,在解析最后一个示例时,没有定义模式的任何一个可选部分。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-06-29 08:02:20

我同意@OleV.V提出的解决方案:

代码语言:javascript
复制
val formatter = DateTimeFormatter.ofPattern("MMMM-d-[yyyy][yy]");
System.out.println(LocalDate.parse("June-27-2022", formatter)); 
System.out.println(LocalDate.parse("June-27-22", formatter)); 
System.out.println(LocalDate.parse("June-27-", formatter)); // throws an Exception
票数 1
EN

Stack Overflow用户

发布于 2022-06-27 15:01:52

一种选择是创建多个格式化程序的列表,每个格式化程序都有自己的模式。轮流试一试,直到其中一个成功为止。如果没有成功地解析输入字符串,则给出一个错误。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72774255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档