java - 由数字文字后缀的 DateTimeFormatter 模式仅在模式中存在空格时才有效
问题描述
我看到了一些类似的问题,并且已经修复了有关此类问题的错误。现在我想知道我是否做错了什么,或者这个案例仍然没有涵盖。我的问题是我必须解析一个后跟零的日期,所以模式是 yyyyMMdd'0000'。但是它失败了,但是如果我在其中放置一个空格就可以了: yyyy MMdd'0000'
DateTimeFormatter formatter = new DateTimeFormatterBuilder().appendPattern("yyyy MMdd'0000'").toFormatter().withResolverStyle(ResolverStyle.STRICT);
System.out.println(formatter.parse(formatter.format(ZonedDateTime.now())));
formatter = new DateTimeFormatterBuilder().appendPattern("yyyyMMdd'0000'").toFormatter().withResolverStyle(ResolverStyle.STRICT);
System.out.println(formatter.parse(formatter.format(ZonedDateTime.now())));
我知道我可以用小时和分钟模式替换文字部分,它会起作用,但我想将它用作输入的验证器机制,因此它应该在其他值上失败,而无需额外编码。我使用 Oracle JDK 1.8.0_221 和 OpenJDK 13+33 进行了尝试
谢谢!
解决方案
你几乎明白了。做吧MMMM
。
formatter = new DateTimeFormatterBuilder()
.appendPattern("yyyyMMMMdd'0000'")
.toFormatter()
.withResolverStyle(ResolverStyle.STRICT);
推荐阅读
- php - 如何根据选择的内容在我的数据库中添加信息。?
- android - Firebase Auth 域对 Android 和 iOS 中的用户可见
- android - Android OkHttp3 第二次请求调用 java.io.IOException: stream closed
- r - 当我知道行号时如何找到列名(变量名)
- python - 为什么我不能在 tkinter (Python) 中更改我的标签文本?
- c# - 尝试插入数据网格后 Appcrash
- ios - iOS Safari 不显示按钮文本
- javascript - 如何在 D3 中的热图上添加工具提示?
- c++ - 将 std::begin 和 std::end 与具有运行时大小的数组一起使用
- web-crawler - 有没有办法从 MineXMR Dashboard 下载数据?