读取不同语言环境中的时间戳

Kar*_*k R 7 java time date arabic jodatime

"timestamp_utc": "????-??-??T??:??:??+??:??"
Run Code Online (Sandbox Code Playgroud)

是JSON中的属性.我该如何解析这个日期?我尝试了下面这段代码.

try 
{
    return new DateTime(dateStr, DateTimeZone.UTC);
}
catch (IllegalArgumentException e)
{
    java.util.Locale locale = new java.util.Locale( "ar", "SA" );
    DateTimeFormatter formatter = ISODateTimeFormat.dateTime().withLocale( locale );
    return formatter.parseDateTime( dateStr );
}
Run Code Online (Sandbox Code Playgroud)

2015-05-11T11:31:47工作得很好.然而, ????-??-??T??:??:??+??:??抛出一个IllegalArgumentException.尝试使用其他语言环境/格式解析日期.没运气.

Locale list[] = DateFormat.getAvailableLocales();
        for (Locale aLocale : list) {
            try{
                DateTimeFormatter formatter = DateTimeFormat.forPattern( "yyyy-MM-dd'T'HH:mm:ssZ" ).withLocale(aLocale);
                System.out.println(formatter.parseDateTime( dateStr ));
            }
            catch(Exception e){
                System.out.println("locale " + aLocale.toString() + " error");
            }
        }
Run Code Online (Sandbox Code Playgroud)

请帮帮我.

Vas*_*san 2

添加非阿拉伯字符 (T) 使其成为非阿拉伯日期(我通过尝试在谷歌翻译中翻译它得到了这个想法)。尝试以下操作(将输入日期和模式中的 T 更改为 <space>):

\n\n
public static void main (String[] args) throws java.lang.Exception\n{\n    String ara = "\xdb\xb2\xdb\xb0\xdb\xb1\xdb\xb5-\xdb\xb1\xdb\xb1-\xdb\xb0\xdb\xb2 \xdb\xb1\xdb\xb8:\xdb\xb4\xdb\xb4:\xdb\xb3\xdb\xb4+\xdb\xb0\xdb\xb0:\xdb\xb0\xdb\xb0";\n    for (Locale aLocale : DateFormat.getAvailableLocales()) {\n        //Just to save time, not needed.\n        if(aLocale.getLanguage() != "ar") continue;\n        try{\n            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss+SS:SS", aLocale);\n            System.out.println(sdf.parse( ara ));\n        }\n        catch(Exception e){\n            System.out.println("locale " + aLocale.toString() + " error");\n        }\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n