2013-03-26 77 views
5

我正在開發一個春天的應用程序,並在我的控制器之一,我有以下幾行來解析字符串日期和格式化解析日期到所需的格式。但是,我又需要將格式化的字符串解析爲日期而不使用任何SimpleDateFormat,那麼可以這樣做嗎?在不使用SimpleDateFormat的情況下將字符串解析爲日期?

SimpleDateFormat dateFormat = new SimpleDateFormat("MM-dd-yyyy"); 
SimpleDateFormat dateFormat2 = new SimpleDateFormat("yyyy-MM-dd"); 

Date pick=dateFormat.parse(request.getParameter("pickDate")); 
String pick_date=dateFormat2.format(pick); 
+0

是什麼使用SimpleDateFormat的問題? – 2013-03-26 04:50:18

+0

爲什麼你不能使用'SimpleDateFormat'? – 2013-03-26 04:50:32

+0

您應該避免使用SimpleDataFormat,因爲它不是線程安全的。 – OQJF 2013-03-26 04:54:45

回答

5

編輯:

我在維基百科中發現,中國的語言環境YYYY-MM- DD。檢查這個參考date format by country 地方設置到中國,你會得到所需的日期格式

試試這個

String d1="12-27-2010"; 
    Stirng[] splitdata=d1.split("-"); 

    int month=Integer.parseInt(splitdata[0]); 
int day=Integer.parseInt(splitdata[1]); 
int year=Integer.parseInt(splitdata[2]); 

Calender cal=Calender.getInstance(Locale.CHINA); 
cal.set(year,month,day); 
Date d=cal.getTime(); 

這應該工作


如果你知道你的數據格式,你可以去做。通過使用簡單的字符串操作

例: 如果你的數據格式是

MM-DD-YYYY

那麼你就可以轉換爲yyyy-MM-dd這樣

String d1="12-27-2010"; 
Stirng[] splitdata=d1.split("-"); 

String s2= splitdate[2]+"-"+splitdate[0]+"-"+splitdate[1]; 
+0

但是如何將它解析回日期? 's2'在你的例子中只是字符串不是Date對象。 – 2013-03-26 05:04:54

+0

@WannabeGeek對不起,回覆遲了,也是錯誤的答案。我會盡快回復你 – Pragnani 2013-03-26 05:13:06

+0

我很感謝你的努力,謝謝你的回答。我會嘗試你的答案並回復你。 – 2013-03-26 05:19:33

-1

是可能的;只需編寫代碼來進行解析。不應該是困難的......

+2

如何在不使用SimpleDateFormat的情況下做到這一點? – 2013-03-26 04:50:50

+1

就像你編程任何其他的東西一樣。拿起字符串,分解它,'閱讀'字符串,從中找出一個日期。我的意思是如果你不使用內置的語言庫,你必須自己實現它。誰寫的SimpleDateFormat確實寫了解析代碼。你可以寫一些類似的東西。而網絡搜索應該也會產生示例代碼。 但大部分時間都是徒勞的運動......很難做到正確。 SimpleDateFormat的問題究竟是什麼? – Amit 2013-03-26 04:53:54

0

您可以使用連接運算符(+)爲

相關問題