Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SimpleDataFormat can';t解析日期_Java_String_Parsing_Date - Fatal编程技术网

Java SimpleDataFormat can';t解析日期

Java SimpleDataFormat can';t解析日期,java,string,parsing,date,Java,String,Parsing,Date,到目前为止,我在解析字符串时遇到了一个小问题。我搜索了一个想法,我得到了我的答案,但它仍然不起作用。。所以 我正在尝试解析一个如下所示的字符串 1985年1月8日星期二00:00:00 CET 我想说的是 private Date getDateFromString(String sDate) { String dateFormat = "EEE MMM dd HH:mm:ss z yyyy"; SimpleDateFormat sdf = new SimpleDateForm

到目前为止,我在解析字符串时遇到了一个小问题。我搜索了一个想法,我得到了我的答案,但它仍然不起作用。。所以

我正在尝试解析一个如下所示的字符串

1985年1月8日星期二00:00:00 CET

我想说的是

private Date getDateFromString(String sDate)
{
    String dateFormat = "EEE MMM dd HH:mm:ss z yyyy";

    SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
    sdf.setTimeZone(TimeZone.getTimeZone("CET"));  
    Date newDate = null;
    try {
        newDate = sdf.parse(sDate);
    } catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return newDate;

}

当然有人可以帮我:-)谢谢你的预测问题出在“Tue”和“Jan”的解释上,因为你没有指定任何语言环境(在本例中,它采用默认语言环境(locale.getDefault())

尝试:


你试过日历吗

public Date getDateFromString(String sdate) {
    SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy");
    Calendar car = Calendar.getInstance();
    Date ndate = null;
    try {
        ndate = sdf.parse(sdate);
    } catch (ParseException e) {
        e.printStackTrace();
    }
    return ndate;
}

这段代码对我有用。你是使用java.util.Date还是java.sql.Date作为导入?直到我添加了Adonyelle所说的,你必须将此区域设置作为默认值,我才使用这段代码。有什么错误/问题吗?你遇到了什么问题?我想问题是他得到了java.text.ParseException:不可解析的日期:“Tue Jan 08 00:00:00 CET 1985”.这就是我得到的,直到我添加了美国语言环境(我有瑞典语言环境默认值)。
public Date getDateFromString(String sdate) {
    SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy");
    Calendar car = Calendar.getInstance();
    Date ndate = null;
    try {
        ndate = sdf.parse(sdate);
    } catch (ParseException e) {
        e.printStackTrace();
    }
    return ndate;
}