SimpleDataFormat如何在Java中使用DateFormat解析月份完整格式字符串?
我试过这个:
DateFormat fmt = new SimpleDateFormat("MMMM dd, yyyy");
Date d = fmt.parse("June 27, 2007");
错误:
Exception in thread "main" java.text.ParseException: Unparseable date: "June 27, 2007"
java文档说我应该使用四个字符来匹配完整的表单。 我只能成功地使用MMM和缩写月份,如“Jun”,但我需要匹配完整的表格
Text: For formatting, if the number of pattern letters is 4 or more, the full form is used; otherwise a short or abbreviated form is used if available. For parsing, both forms are accepted, independent of the number of pattern letters.
https://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html
# 1 楼答案
您可能正在使用的区域设置中,月份名称不是“一月”、“二月”等,而是本地语言中的其他一些单词
尝试指定要使用的区域设置,例如
Locale.US
:此外,日期字符串中还有一个额外的空格,但实际上这对结果没有影响。这两种方法都有效
# 2 楼答案
来自java的LocalDate。时间
使用java中的
LocalDate
。时间,现代Java日期和时间API,用于日期输出:
正如其他人已经说过的,当字符串是英语时,请记住指定一个说英语的区域设置。A
LocalDate
是一个没有时间的日期,因此比旧的Date
类更适合字符串中的日期。尽管它的名字是Date
,但它并不代表一个日期,而是一个时间点,在世界上不同的时区至少有两个不同的日期只有当你需要一个老式的
Date
来开发一个你无法升级到java的API时。刚才的时间,像这样转换:我所在时区的输出:
链接
解释如何使用java。时间到了