簡體   English   中英

無法在GWT中將字符串轉換為日期

[英]Not able to convert the String to Date in GWT

我試圖在GWT中將String更改為Date。在StackOverFlow中搜索后,我得到了一個解決方案。

java.lang.IllegalArgumentException:2014年2月21日星期五00:00:00

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

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

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

請提出解決方法。

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

根據API-Doc的引用:

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

問題出在DateTimeFormat不能轉換的IST

試試這個,在沒有IST模式的情況下可以正常工作

    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));

或使用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());
        }

這是有關國際化示例中日期模式的示例代碼

這里是閱讀有關如何獲取特定語言環境的數字格式模式的另一個鏈接 在服務器端。

嘗試這個 :

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字符串到日期的轉換

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM