我正在尝试将日期从String
转换为Date
对象:
String dateString = "Mon, 04 Sep 2017 18:30:28";
String dateFormat = "EEE, dd MMM yyyy HH:mm:ss";
导致以下异常:
java.text.ParseException:无法解析的日期:“2017 年 9 月 4 日星期一 18:30:28”
我尝试了不同的字符串和格式,问题似乎是周的名称('EEE')。没有它可以完美运行。
这也很完美:
String dateString = "04 Sep 2017 18:30:28, Mon";
String dateFormat = "dd MMM yyyy HH:mm:ss, EEE";
月份和工作日是缩写文本。文本依赖于语言,如果您在实例化 SimpleDateFormatter 时不提供特定的区域设置,则会使用系统的区域设置。您的解析失败的原因是工作日而不是月份可能是系统默认语言中月份的缩写名称与英语中的月份缩写名称相同。
下面是一些代码,你应该如何用文本解析日期:
SimpleDateFormat formatter = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss", Locale.ENGLISH);
formatter.setLenient(false);
ParsePosition pos = new ParsePosition(0);
return formatter.parse(toParse, pos);
与toParse
被包含的日期作为文本字符串。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句