لماذا لا يمكن لهذا التبسيط تحليل سلسلة التاريخ هذه؟
-
25-09-2019 - |
سؤال
التبسيط:
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.