تقويم ميلادي تاريخ ثابت
-
06-07-2019 - |
سؤال
وطيب، أريد أن برنامجي بطباعة تاريخ: 1/1/2009
ولكن هذا هو ما يطبع بها:
والخميس 1 يناير 00:00:00 EST 2009
ومن هذا الرمز
GregorianCalendar startDate = new GregorianCalendar(2009, Calendar.JANUARY, 1);
public void setStart()
{
startDate.setLenient(false);
Date date = new Date(startDate.getTimeInMillis());
System.out.println(date);
}
وكيف يمكنني تغييره بحيث يطبع فقط من 1/1/2009؟
المحلول
استخدم SimpleDateFormat
:
GregorianCalendar startDate = new GregorianCalendar(2009, Calendar.JANUARY, 1);
public void setStart() {
startDate.setLenient(false);
DateFormat df = new SimpleDateFormat("d/M/yyyy");
df.format(startDate.getDate());
}
أنت تدعو ضمنا طريقة toString()
وهو (صحيح) طبع محتويات كاملة.
وبالمناسبة، ليست هناك حاجة لبناء تاريخ الطريقة تفعلونه. داعيا getDate()
على Calendar
بإرجاع كائن Date
.
نصائح أخرى
وحاليا، فإن Date.toString()
يتم يسمى> طريقة لعرض تمثيل String
من في GregorianCalendar
المثال.
ما يجب القيام به هو خلق DateFormat
التي سوف تنتج تمثيل String
الذي هو المطلوب. يمكن استخدام الكائن DateFormat
لتهيئة مثيل Date
إلى التنسيق المطلوب باستخدام في طريقة format
.
وأبسط طريقة لتحقيق ما هو المطلوب لاستخدام في SimpleDateFormat
الطبقة ، التي لديها <لأ href =" http://java.sun.com/javase/6/docs/api/java/text/SimpleDateFormat.html#SimpleDateFormat(java.lang. سلسلة) "يختلط =" نوفولو noreferrer "> منشئ الذي يأخذ شكل سلسلة لانتاج Date
في شكل المطلوب.
Calendar calendar = new GregorianCalendar(2009, Calendar.JANUARY, 1);
DateFormat df = new SimpleDateFormat("M/d/yyyy");
System.out.println(df.format(calendar.getTime()));
والناتج
1/1/2009