0

我想以 2012 年 4 月 22 日的格式显示日期。我正在使用这段代码:

        SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");

        sdf.applyPattern("dd MMM yyyy");
        Date x = new Date(time.year,time.month,time.monthday);
        System.out.println(sdf.format(x));

但我得到 o/p 为:3912 年 4 月 22 日。我想知道为什么它显示 3912 代替 2012。

4

3 回答 3

1

请阅读 Date 类的api。它从 1900 年开始,因此在此构造函数中您必须提供日期 - 1900。但此构造函数已被弃用,因此我的建议是开始使用 Calendar 对象进行与日期相关的操作。Java.da

于 2012-04-22T18:48:29.350 回答
1
Calendar cal=Calendar.getInstance();
SimpleDateFormat sdf  = new SimpleDateFormat("dd MMM yyyy");
String dateresult = sdf.format(cal.getTime());
于 2012-04-22T18:59:58.703 回答
1
SimpleDateFormat dateformate = new SimpleDateFormat("dd-MMM-yyyy");
    Calendar currentDate = Calendar.getInstance();

    String currentDateStr = dateformate.format(currentDate.getTime());
    Log.i("Infoe ", " " + currentDateStr.toString());       
    System.out.println("Current date is :  " + currentDateStr);
    ////=== OR

    SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-yyyy");

    sdf.applyPattern("dd-MMM-yyyy");
    Date x = new Date(currentDate.get(Calendar.YEAR) - 1900,
            currentDate.get(Calendar.MONTH), currentDate.get(Calendar.DAY_OF_MONTH));
    Log.i("Infoe ", " " + sdf.format(x));
    System.out.println(sdf.format(x));

它的 3912 bcz .​​..日期设置为... Calendar.set(year + 1900, month, date) 或 GregorianCalendar(year + 1900, month, date)。根据公历

我认为日历的使用是 gd,因为不推荐使用日期...对于日期格式,请使用 dd-MMM-yyyy no dd-MM-yyyy bcz 您想要月份前 2 个字符... 对于日期格式

于 2012-04-22T19:14:01.827 回答