سؤال

وطيب، أريد أن برنامجي بطباعة تاريخ: 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
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top