5

我正在尝试从字符串转换为日期。例如:2013 年 9 月 4 日,星期三,下午 5:07

我首先将其转换为:2013 年 9 月 4 日,星期三,下午 5:07

并使用以下代码:

SimpleDateFormat format = new SimpleDateFormat("EEEE, MMMM d, yyyy 'at' hh:mm a");

但我总是得到不可解析的日期异常。

任何帮助表示赞赏!

4

3 回答 3

4

以下对我有用:

String str = "Wednesday, September 4, 2013 at 5:07 PM";
SimpleDateFormat format = new SimpleDateFormat("EEEE, MMMM d, yyyy 'at' hh:mm a", Locale.US);

但是如果我删除Locale,那么我会得到一个ParseException. 您的计算机Locale可能与英语语言环境不对应。

于 2013-09-10T20:10:37.887 回答
0

这似乎工作正常:

SimpleDateFormat in = new SimpleDateFormat("EEEE, MMMM d, yyyy 'at' hh:mma");
Date date = in.parse("Wednesday, September 4, 2013 at 5:07pm");
SimpleDateFormat out = new SimpleDateFormat("EEEE, MMMM d, yyyy 'at' hh:mm a");
String result = out.format(date);
System.out.println(result);
于 2013-09-10T20:16:48.523 回答
0

为什么不使用 ' dd ' 而不是 ' d '

所以,而不是:

SimpleDateFormat format = new SimpleDateFormat("EEEE, MMMM d, yyyy 'at' hh:mm a");

采用:

SimpleDateFormat format = new SimpleDateFormat("EEEE, MMMM dd, yyyy 'at' hh:mm a");
于 2019-03-30T05:13:56.087 回答