2015-12-09 5 views
7
"timestamp_utc": "۲۰۱۵-۱۱-۰۲T۱۸:۴۴:۳۴+۰۰:۰۰" 

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

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

कृपया मेरी मदद करें।

+0

डेटा स्वरूप बस जावा डेटा पुस्तकालयों द्वारा समर्थित नहीं किया जा सकता है कि, यदि आप स्रोत कोड में देखा अरबी पार्स समर्थित है या नहीं है: (दोनों इनपुट तारीख में < अंतरिक्ष > और पैटर्न को बदल दिया है टी) नीचे की कोशिश करो ? – RAnders00

उत्तर

2

एक गैर-अरबी चरित्र (टी) को जोड़ने से यह एक गैर-अरबी तारीख बन गई (मुझे Google अनुवाद में इसका अनुवाद करने का प्रयास करके विचार मिला)।

public static void main (String[] args) throws java.lang.Exception 
{ 
    String ara = "۲۰۱۵-۱۱-۰۲ ۱۸:۴۴:۳۴+۰۰:۰۰"; 
    for (Locale aLocale : DateFormat.getAvailableLocales()) { 
     //Just to save time, not needed. 
     if(aLocale.getLanguage() != "ar") continue; 
     try{ 
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss+SS:SS", aLocale); 
      System.out.println(sdf.parse(ara)); 
     } 
     catch(Exception e){ 
      System.out.println("locale " + aLocale.toString() + " error"); 
     } 
    } 
} 
संबंधित मुद्दे