2015-06-29 165 views

回答

-1

喜歡的東西,

Date d = new Date(old); 
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 
String date=sdf.format(d); 
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

這會給出一個錯誤 - > java.text中。 ParseException:無法解析日期:「2015年11月2日星期一」(在偏移量3) –

+0

然後嘗試找出「2015年11月2日星期一」的確切格式或者刪除「nd」(或「st」,「th」 )部分在數字後面,然後再試一次那麼我給你的模式 –

0

在你的日期「星期一2015年6月29日」 th使它不可解析,所以我認爲你應該刪除它,並嘗試解析你的日期

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,並且包含月份的所有日期的2位數字,如
「2015年6月1日星期一」 如果不是必須將日期值轉換爲2位號碼或更改我的分析邏輯,從本月

的日期除去ST或RD等希望這將有助於:)

+0

如果你有「2015年11月2日星期一」例如,日期只有一個數字,這將不起作用。我認爲消除數字之後的字母的正確方法是通過字符串(例如「2nd」)並獲取所有可分析數字 –

+0

我已經提到了我的假設,即使檢查我的更新代碼 – Vishnu

+0

現在I同意建議的代碼 –

相關問題