لماذا لا يمكن لهذا التبسيط تحليل سلسلة التاريخ هذه؟

StackOverflow https://stackoverflow.com/questions/2603638

سؤال

التبسيط:

SimpleDateFormat pdf = new SimpleDateFormat("MM dd yyyy hh:mm:ss:SSSaa");

الاستثناء الذي ألقاه pdf.parse("Mar 30 2010 5:27:40:140PM");:

java.text.ParseException: Unparseable date: "Mar 30 2010 5:27:40:140PM"

أيه أفكار؟


تعديل: شكرا على الإجابات السريعة. لقد كنت جميعًا على صواب ، لقد فاتني فقط هذه الجملة الرئيسية في مستندات SimpleDateFormat - ربما يجب أن أسميها في اليوم.

هل كانت مفيدة؟

المحلول

من عند SimpleDateFormat Javadocs:

الشهر: إذا كان عدد رسائل الأنماط 3 أو أكثر ، يتم تفسير الشهر على أنه نص ؛ خلاف ذلك ، يتم تفسيره على أنه رقم.

حاول استخدام نمط مثل "mmm dd yyyy"

نصائح أخرى

أولاً ، يتم تمثيل الأشهر الثلاثة MMM. ثانياً ، يتم تمثيل ساعة رقم واحد h. ثالث، Mar يبدو أن اللغة الإنجليزية ، ستحتاج إلى توفير ملف Locale.ENGLISH, ، وإلا فلن يعمل بشكل صحيح في الآلات مع لغة افتراضية مختلفة.

الأعمال التالية:

SimpleDateFormat sdf = new SimpleDateFormat("MMM dd yyyy h:mm:ss:SSSa", Locale.ENGLISH);
System.out.println(sdf.parse("Mar 30 2010 5:27:40:140PM"));

النتيجة (أنا في GMT-4 W/O DST):

Tue Mar 30 17:27:40 BOT 2010

انظر أيضا java.text.SimpleDateFormat جافادوك.

لماذا دعوتها pdf هو أبعد ما عني ، لذلك أعيد تسميته sdf ;)

MM تعني الشهر الرقمي. استخدم MMM.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top