2014-03-28 106 views
1

我試圖改變GWT.After一個字符串到日期計算器中搜索,我得到了一個solution.But還是我越來越無法將字符串轉換爲日期在GWT

的java.lang。 IllegalArgumentException:星期五Feb 21 00:00:00 IST 2014

以下是我在GXT GridEditor類中的代碼。

DateTimeFormat fmt = DateTimeFormat.getFormat("EEE MMM dd HH:mm:ss z yyyy"); 
Date checkInDate = fmt.parse(ACCCheckBoxModel.getSelectedItem().getCheckinDate()); 

ACCCheckBoxModel.getSelectedItem().getCheckinDate()我得到一個字符串。我需要將此字符串轉換爲日期。然後我需要將日期格式轉換爲dd/MMM/yyyy格式。

請建議如何解決此問題。

+0

可能重複(HTTP [如何使用GWT String轉換日期時間的更新?]://計算器。 com/questions/11342670/how-to-convert-string-datetime-to-date-using-gwt) –

+0

@Jigar Joshi我已經看過這個了。發佈此問題之前。但仍然無法解析。 – user1903120

+0

你能發佈不適合你的確切代碼嗎 –

回答

1

解析器不理解IST。嘗試將解析移到服務器端。

API-Doc以下引證:

解析時區支持是有限的。只支持標準GMT和 RFC格式。不支持使用時區ID (如America/Los_Angeles)的時區規範,時區名稱(如PST,太平洋 標準時間)。通常,客戶端應用程序加載所有時區符號的負擔太大。而在幾乎所有這些情況下,通過某種RPC機制在服務器端進行這樣的解析是更好的選擇。這個決定是基於我們研究的特定用例的 ;原則上可以在未來的版本中更改爲 。

0

問題是與IST不通過DateTimeFormat

轉換嘗試這一個,及其在圖案

DateTimeFormat fmt = DateTimeFormat.getFormat("EEE MMM dd HH:mm:ss yyyy"); 
    Date checkInDate = fmt.parse("Fri Feb 21 00:00:00 2014"); 
    System.out.println(DateTimeFormat.getFormat("dd/MMM/yyyy").format(checkInDate)); 

或代替IST使用GMT工作正常無需IST如下所示

DateTimeFormat fmt = DateTimeFormat.getFormat("EEE MMM dd HH:mm:ss v yyyy"); 
    Date checkInDate = fmt.parse("Fri Feb 21 00:00:00 GMT+05:30 2014"); 
    System.out.println(DateTimeFormat.getFormat("dd/MMM/yyyy").format(checkInDate)); 

只需調用一個GWT RPC調用,然後在服務器上嘗試下面的代碼以找出您的本地化日期格式並立即使用它。

 Locale locale = httpServletRequest.getLocale(); 

     final Date currentDate = new Date(); 
     final DateFormat dateInstance = DateFormat.getDateInstance(DateFormat.FULL, locale); 
     final String format = dateInstance.format(currentDate); 
     System.out.println(format); 

     if (dateInstance instanceof SimpleDateFormat) { 
      System.out.println("pattern: " + ((SimpleDateFormat) dateInstance).toPattern()); 
      System.out.println("localized pattern: "+((SimpleDateFormat) dateInstance).toLocalizedPattern()); 
     } 

這裏是在internationalization sample

關於日期模式的代碼示例這裏是一個多個鏈路來讀取在服務器側約How to get the pattern of Number Format of a specific locale?

0

試試這個:

String string = "January 2, 2010"; 
Date date = new SimpleDateFormat("MMMM d, yyyy", Locale.ENGLISH).parse(string); 
System.out.println(date); // Sat Jan 02 00:00:00 BOT 2010 

,並看一看的

Java string to date conversion