لماذا لا أحصل على الحق العام باستخدام SimpleDateFormat في جافا؟
-
06-07-2019 - |
سؤال
وأنا في محاولة لتحليل بيانات في تنسيق MySql
، وعدوت عبر SimpleDateFormat
. يمكنني الحصول على اليوم السليم والشهر، ولكن حصلت على نتيجة غريبة للسنة:
date = 2009-06-22;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date d = sdf.parse(date);
System.println(date);
System.println(d.getDate());
System.println(d.getMonth());
System.println(d.getYear());
والمخرجات:
2009-06-22
22 OK
5 Hum... Ok, months go from 0 to 11
109 o_O WTF ?
وحاولت تغيير شكل لYYYY-MM-dd
(حصل خطأ) وyy-MM-dd
(لم تفعل شيئا). أنا البرمجة على الروبوت، لا أعرف ما إذا كان من المهم.
والآن، وأنا تجاوز أن استخدام الانقسام، لكنه القذرة ومنعي من استخدام ميزات I18N.
المحلول
وهذا العام هو نسبة إلى 1900. هذا هو "ميزة" الطبقة Date
. محاولة استخدام Calender
.
نصائح أخرى
وبفضل هارون، الإصدار الصحيح:
Calendar c = Calendar.getInstance();
c.setTime(sdf.parse(date));
System.println(c.get(Calendar.YEAR));
لا تنتمي إلى StackOverflow