你好,我需要解析这个字符串
北京时间2010年8月15日下午3:50
我以这种方式使用SimpleDataFormat
String date = "Sun, 15 Aug 2010 3:50 pm CEST";
DateFormat formatter = new SimpleDateFormat("EEE, dd MMM yyyy h:mm a Z");
Date d = formatter.parse(date);但是它抛出了一个异常。
你能帮帮我吗?
谢谢
发布于 2010-08-15 23:28:41
SimpleDateFormat对当前设置的Locale敏感。因此,在尝试使用当前格式解析格式时,可能会出现问题。对于您的构造函数,它使用Locale.getDefault()来确定设置。
您可以尝试通过new SimpleDateFormat(pattern, Locale.US)使用Locale.US显式创建DateFormat,并验证在这种情况下是否也存在问题。
发布于 2010-08-15 23:12:13
这段代码:
try {
String date = "Sun, 15 Aug 2010 3:50 pm CEST";
DateFormat formatter = new SimpleDateFormat("EEE, dd MMM yyyy h:mm a Z");
Date d = formatter.parse(date);
System.out.println(formatter.format(d));
} catch (ParseException e) {
e.printStackTrace();
}打印(无任何例外):
Sun, 15 Aug 2010 3:50 PM +0200所以我猜你还有别的问题..。你得到的异常是什么?
发布于 2010-08-16 21:56:26
我就是这样解决的
try {
DateFormat df = new SimpleDateFormat("EEE, dd MMM yyyy h:mm a", Locale.US);
Date d = df.parse(date);
bean.setDate(d);} catch (Exception e) {Logger.error(“解析数据时出错”);}
从pattern中删除Z并使用Locale.US。
谢谢
https://stackoverflow.com/questions/3487898
复制相似问题