मुझे यह कहीं भी नहीं मिला। मैं एक जेएसओएन को एक एपीआई से लाता हूं जो मानक JSON तिथियां देता है। आप एक JavaScript कंसोल में इस कोड को चलाकर प्रारूप देख सकते हैं:जेएसओएन तिथि जावा तिथि?
> new Date().toJSON();
"2010-10-27T11:58:22.973Z"
ठीक है, वास्तव में, एपीआई के साथ मैं मिलीसेकंड हिस्सा नहीं लौटा रहा है काम कर रहा हूँ, और कभी कभी यह Z
के बजाय एक समय क्षेत्र देता है तो,
2010-10-27T11:58:22Z
2010-10-27T11:58:22+03:00
: दिनांक इनमें से किसी भी जैसा हो सकता है इस तरह की तिथियों को पार्स करना कुछ हद तक बोझिल है। org.json
का उपयोग करके, इन प्रकार की तिथियों को पार्स करने का कोई तरीका है?
मेरे वर्तमान समाधान है:
public static Date parseDateTime(String dateString) {
if (dateString == null) return null;
DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ssZ");
if (dateString.contains("T")) dateString = dateString.replace('T', ' ');
if (dateString.contains("Z")) dateString = dateString.replace("Z", "+0000");
else
dateString = dateString.substring(0, dateString.lastIndexOf(':')) + dateString.substring(dateString.lastIndexOf(':')+1);
try {
return fmt.parse(dateString);
}
catch (ParseException e) {
Log.e(Const.TAG, "Could not parse datetime: " + dateString);
return null;
}
}
ओह!
नीचे दी गई टिप्पणी में, आपने बताया है कि आप एंड्रॉइड के लिए कार्यान्वित कर रहे हैं। क्या आपने एंड्रॉइड 'SimpleDateFormat'' ZZZZZ' को आजमाया था? –