使用 SimpleDateFormat 无法解析的日期:指定区域设置或使用 DateTimeFormatter
问题:
使用 SimpleDateFormat 时解析日期,你可能会遇到错误“java.text.ParseException:无法解析日期”,尤其是在未指定区域设置时。
说明:
SimpleDateFormat 需要区域设置才能正确解析日期。如果未指定,则使用系统的默认语言环境,该语言环境可能与正在解析的格式不匹配。
解决方案:
- 始终指定locale: 使用 SimpleDateFormat 的构造函数重载来接受 Locale 参数。例如:
SimpleDateFormat dtfmt = new SimpleDateFormat("dd MMM yyyy hh:mm a", Locale.ENGLISH);
- 使用现代 DateTimeFormatter API:
- DateTimeFormatter 是用于格式化和格式化的首选 API解析日期和时间。
- 它提供了更大的灵活性和控制格式,包括指定区域设置的能力。
使用 DateTimeFormatter 的演示:
import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.Locale; public class Main { public static void main(String[] args) { String strDateTime = "24 Oct 2016 7:31 pm"; DateTimeFormatter dtf = DateTimeFormatter.ofPattern("d MMM uuuu h:m a").withLocale(Locale.ENGLISH); LocalDateTime ldt = LocalDateTime.parse(strDateTime, dtf); System.out.println(ldt); // prints 2016-10-24T19:31 } }
注意:
- 由指定的 默认语言环境 DateTimeFormatter 使用系统当前的区域设置。
- 始终显式指定区域设置以避免潜在的解析问题。
以上是为什么 SimpleDateFormat 会抛出'无法解析的日期”?的详细内容。更多信息请关注PHP中文网其他相关文章!

如何在Java中动态配置实体类注解参数?在Java开发中,我们经常会遇到需要根据不同的环境动态配置某些参数的�...

在使用Netty开发WebSocket服务器时,可能会遇到浏览器在尝试连接时未能正确处理服务器返回的401状态码的情况。�...

Java编译失败:运行窗口javac命令无法生成class文件许多Java初学者在学习过程中都会遇到这样的问题:在运行窗口...

探讨后端开发中的分层架构问题在后端开发中,常见的分层架构包括controller、service和dao...

Java中的包与目录:编译器报错背后的逻辑在Java开发中,经常会遇到包和目录的问题。本文将深入探讨Java...

如何在宝塔nginx中正确配置apple-app-site-association文件?最近,公司iOS部门发送了一个apple-app-site-association文件,并...


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

Atom编辑器mac版下载
最流行的的开源编辑器

SublimeText3 Linux新版
SublimeText3 Linux最新版

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。