"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > لماذا يقوم SimpleDateFormat بتحليل \"YYYY-MM-dd HH:mm\" بشكل غير صحيح؟

لماذا يقوم SimpleDateFormat بتحليل \"YYYY-MM-dd HH:mm\" بشكل غير صحيح؟

تم النشر بتاريخ 2024-12-21
تصفح:577

Why Does SimpleDateFormat Incorrectly Parse \

يقوم SimpleDateFormat بتوزيع "YYYY-MM-dd HH:mm" بشكل غير صحيح

عند محاولة تحليل سلسلة بالتنسيق "YYYY-MM" -dd HH:mm" حتى تاريخ، يواجه بعض المطورين نتائج تاريخ غير متوقعة. يحدث هذا عند استخدام فئة SimpleDateFormat مع تعيين الإعداد المتساهل على false.

يوضح مقتطف التعليمات البرمجية التالي المشكلة:

Date newDate = null;
String dateTime = "2013-03-18 08:30";
SimpleDateFormat df = new SimpleDateFormat("YYYY-MM-dd HH:mm", Locale.ENGLISH);
df.setLenient(false);
try {
    newDate = df.parse(dateTime);
} catch (ParseException e) {
    throw new InvalidInputException("Invalid date input.");
}

ينتج هذا الرمز تاريخًا غير صحيح:

Sun Dec 30 08:30:00 EST 2012 (wrong)

لحل هذه المشكلة، تأكد من تحديد تنسيق السنة في نمط SimpleDateFormat يتم استخدام الأحرف الصغيرة "yyyy" بدلاً من الأحرف الكبيرة "YYYY."

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.ENGLISH);

بإجراء هذا التعديل، سيتم تحليل الكود السلسلة "YYYY-MM-dd HH:mm" بشكل صحيح. راجع وثائق SimpleDateFormat لمزيد من المعلومات.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3