我正在尝试从字符串转换为日期。例如:2013 年 9 月 4 日,星期三,下午 5:07
我首先将其转换为:2013 年 9 月 4 日,星期三,下午 5:07
并使用以下代码:
SimpleDateFormat format = new SimpleDateFormat("EEEE, MMMM d, yyyy 'at' hh:mm a");
但我总是得到不可解析的日期异常。
任何帮助表示赞赏!
我正在尝试从字符串转换为日期。例如:2013 年 9 月 4 日,星期三,下午 5:07
我首先将其转换为:2013 年 9 月 4 日,星期三,下午 5:07
并使用以下代码:
SimpleDateFormat format = new SimpleDateFormat("EEEE, MMMM d, yyyy 'at' hh:mm a");
但我总是得到不可解析的日期异常。
任何帮助表示赞赏!
以下对我有用:
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
可能与英语语言环境不对应。
这似乎工作正常:
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);
为什么不使用 ' 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");