我有一个日期字符串,格式如下:
Thu Oct 20 14:39:19 PST 2011
我想使用DateFormat解析它以获取Date对象。我正在尝试这样:
DateFormat df = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.SHORT);
Date date = df.parse(dateString);
这给出了ParseException(“不可解析的日期”)。
我也试过这个:
SimpleDateFormat df = new SimpleDateFormat("EEE-MMM-dd HH:mm:ss z yyyy");
具有相同的结果。
这是正确的SimpleDateFormat
字符串吗?有没有更好的方法来解析这个日期?
答案 0 :(得分:9)
您确定日期字符串确实被分配了值Thu Oct 20 14:39:19 PST 2011
吗?如果这不是问题,您可以尝试使用适合我的代码:
import java.text.SimpleDateFormat;
import java.util.Date;
public class Test{
public static void main(String args[]){
String toParse = "Thu Oct 20 14:39:19 PST 2011";
String format = "EEE MMM dd HH:mm:ss z yyyy";
SimpleDateFormat formater = new SimpleDateFormat(format);
try{
Date parsed = formater.parse(toParse);
} catch(Exception e){
System.out.println(e.getMessage());
}
}
}
答案 1 :(得分:2)
问题在于我试图在法语区域解析英语日期。
使用此代码解决了这个问题:
SimpleDateFormat df = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.CANADA);
答案 2 :(得分:0)
试试这个:
SimpleDateFormat df = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy");