以字符串格式获取月份

时间:2012-04-22 18:30:45

标签: android

我想以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: 22 a 3912。 我想知道为什么它代表2012年显示3912。

3 个答案:

答案 0 :(得分:1)

请阅读日期课程的api。它从1900年开始,所以在这个构造函数中你必须提供日期 - 1900.但是这个构造函数已被弃用,所以我的建议是开始使用Calendar对象进行与日期相关的操作。  for Java.da

答案 1 :(得分:1)

Calendar cal=Calendar.getInstance();
SimpleDateFormat sdf  = new SimpleDateFormat("dd MMM yyyy");
String dateresult = sdf.format(cal.getTime());

答案 2 :(得分: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(年份+ 1900,月份,日期)或GregorianCalendar(年份+ 1900,月份,日期)。 根据GregorianCalendar

我认为使用日历是gd,因为日期已被弃用... nd为日期格式使用dd-MMM-yyyy no dd-MM-yyyy bcz你想要一个月前2个字符... For date Format