日期格式“2015年6月29日星期一”转换为“2015-06-29”

时间:2015-06-29 06:54:29

标签: java android

我在“2015年6月29日星期一”这个格式约会。我想以“2015-06-29”这种格式更改此日期格式。

3 个答案:

答案 0 :(得分:0)

如果您有一个包含日期的字符串,您想要转换,请使用以下内容:

String dateString = "Monday 29th June 2015";
//the output format
SimpleDateFormat simple = new SimpleDateFormat("yyyy-MM-dd");
Date date;
try {
    //the input format of the original date
    date = new SimpleDateFormat("EEEE dd MMMM yyyy")
            .parse(dateString);
    Log.e("result date", "Date:" + simple.format(date));

} catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

答案 1 :(得分:0)

在你的日期“2015年6月29日星期一”使其无法解析,所以我认为你应该删除它并尝试解析你的日期

    String dateString = "Monday 2nd June 2015";
    String str[] = dateString.split(" ");
    str[1] = str[1].replaceAll("rd","");
    str[1] = str[1].replaceAll("th","");
    str[1] = str[1].replaceAll("st","");
    str[1] = str[1].replaceAll("nd","");
    dateString = str[0]+" "+str[1]+" "+str[2]+" "+str[3];
    SimpleDateFormat simple = new SimpleDateFormat("yyyy-MM-dd");
    Date date;
    try {
        date = new SimpleDateFormat("EEEE dd MMMM yyyy").parse(dateString);
        System.out.println(" Date:" + simple.format(date));
    } catch (Exception e) {
        System.out.println(e.getMessage());
    }

在我的代码中,我假设您的日期为字符串值,其中包含所有月份日期的2位数字,例如
“2015年6月1日星期一” 如果它不是那样你必须将你的日期值转换为2位数字或更改我的解析逻辑以从月份之日删除st或rd等

希望它会有所帮助:)

答案 2 :(得分:-1)

类似的东西,

Date d = new Date(old);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String date=sdf.format(d);