java - java.text.ParseException:无法解析的日期:“28.дек.2018”
问题描述
在俄罗斯语言环境中使用带点的模式(如 dd MMM.yyyy)在几个月(不是全部)解析日期时可能出现 Java 8 错误:
Exception in thread "main" java.text.ParseException: Unparseable date: "28 дек.2018"
at java.text.DateFormat.parse(DateFormat.java:366)
at Main.main(Main.java:12)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
带代码:
Locale locale = new Locale("ru");
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd MMM.yyyy", locale);
Object date = simpleDateFormat.parse("28 дек.2018");
System.out.println(date);
解决方案
在俄语语言环境MMM
中,点是 3 个月字母缩写的一部分。因此,点不能是SimpleDateFormat
图案的一部分。例如今天我们有10 янв. 2019
:
Locale locale = new Locale("ru");
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd MMM yyyy", locale);
System.out.println(simpleDateFormat.format(new Date())); // 10 янв. 2019
当用模式解析你的日期时,dd MMM yyyy
它可以工作:
Locale locale = new Locale("ru");
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd MMM yyyy", locale);
Object date = simpleDateFormat.parse("28 дек. 2018");
System.out.println(date); // Fri Dec 28 00:00:00 GMT 2018
推荐阅读
- javascript - 画布 javascript
- ios - ios 应用程序空闲后,领域调用停止工作
- node.js - NodeJS、Express、MongoDB - 将多个 Mongoose 查询传递给渲染页面
- docker - 如何从 Docker 运行 PyCharm?
- ruby - httparty GET 请求:“请求缺少标头:`Authorization`
- cplex - CPLEX 中的“索引超出范围”错误
- r - ggplot 圆形绘图图形不稳定/不清晰
- python - 将数据框转换为 JSON 与 groupby 嵌套的 2 级
- python - 在使用 phantomjs 和 python 重定向之后
- python - 使用熊猫根据多列下一行的值删除一行