Java 无法将我的字符串转换为日期

Java 无法将我的字符串转换为日期,java,string,date,date-format,simpledateformat,Java,String,Date,Date Format,Simpledateformat,我正在搜索如何将字符串转换为日期,因此在stacko上找到了一些示例。因此,我使用SimpleDataFormat并尝试解析,但我的编译器(AndroidStudio中的Gradle)向我发送了以下错误:未处理的异常:java.text.ParseException。 这是我的代码: public static int compareDate(String sdate1, String sdate2) { SimpleDateFormat simpleDateFormat = new S

我正在搜索如何将字符串转换为日期,因此在stacko上找到了一些示例。因此,我使用SimpleDataFormat并尝试解析,但我的编译器(AndroidStudio中的Gradle)向我发送了以下错误:未处理的异常:java.text.ParseException。 这是我的代码:

public static int compareDate(String sdate1, String sdate2) {
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd", Locale.FRANCE);
    Date date1 = simpleDateFormat.parse(sdate1); // there is the error
[...]

}
为什么会有错误?有人能给我解释一下吗? 我是java的初学者,很抱歉我的英语不好,我希望有人能在这方面帮助我。
谢谢

使用
parse
方法抛出
ParseException
。您需要插入一个
catch
块,或者您的方法应该抛出
ParseException
,以消除错误:

public static int compareDate(String sdate1, String sdate2) {
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd", Locale.FRANCE);
    try {
        Date date1 = simpleDateFormat.parse(sdate1);
    } catch (ParseException e) {              // Insert this block.
        // TODO Auto-generated catch block
        e.printStackTrace();
    } 
}

public static int compareDate(String sdate1, String sdate2) throws ParseException{
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd", Locale.FRANCE);
    Date date1 = simpleDateFormat.parse(sdate1); 
}

parse
方法抛出一个
ParseException
。您需要插入一个
catch
块,或者您的方法应该抛出
ParseException
,以消除错误:

public static int compareDate(String sdate1, String sdate2) {
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd", Locale.FRANCE);
    try {
        Date date1 = simpleDateFormat.parse(sdate1);
    } catch (ParseException e) {              // Insert this block.
        // TODO Auto-generated catch block
        e.printStackTrace();
    } 
}

public static int compareDate(String sdate1, String sdate2) throws ParseException{
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd", Locale.FRANCE);
    Date date1 = simpleDateFormat.parse(sdate1); 
}

你能告诉我们你的字符串是什么样子的吗?这是你的本地语言的问题。我在我的函数中输入一个格式为“2013/07/01”的字符串,它仍然不起作用。即使我更改了Local尝试删除locale Arguments,你能告诉我们你的字符串是什么样子吗?这是你的locale的问题。我在我的函数中输入一个格式为“2013/07/01”的字符串,它仍然不起作用。即使我更改了local,请尝试删除有效的locale参数:)。所以这只是因为我没有使用try/catch阵营。@bengous有效吗??然后接受它作为答案,如果它是HWLPFULE,也给出一个upvote,并确保您理解您正在做的事情:如果一个方法可以抛出一个不扩展RuntimeException的异常,您必须通过捕获它或声明您的方法可以抛出该异常来处理它。我不能upvote了:)。还有@Pablo Lozano,我不明白为什么我必须在代码中使用这个,所以如果你能解释为什么我必须使用try/catch,我会很高兴阅读本教程:这很有效:)。所以这只是因为我没有使用try/catch阵营。@bengous有效吗??然后接受它作为答案,如果它是HWLPFULE,也给出一个upvote,并确保您理解您正在做的事情:如果一个方法可以抛出一个不扩展RuntimeException的异常,您必须通过捕获它或声明您的方法可以抛出该异常来处理它。我不能upvote了:)。还有@Pablo Lozano,我不明白为什么我必须在我的代码中使用这个,所以如果你能解释为什么我必须使用try/catch,我会很高兴阅读本教程: