在android中将字符串转换为日历日期的问题

时间:2011-08-30 09:15:20

标签: android

我有以下程序,但它错误地显示月份。请帮忙。

        date1="31/12/2011";  
                SimpleDateFormat formatter = new SimpleDateFormat("dd/mm/yyyy");   
        try {    
            d1 = (Date)formatter.parse(date1);  
             System.out.println("dateeeeeeeeeeeeeeee " + date1);  

            tdy1=Calendar.getInstance();  
            System.out.println("tdy mnthhhhhhhhhhh " + tdy1.get(Calendar.MONTH));  
            tdy1.setTime(d1);  

        System.out.println("Month of date1= " + tdy1.get(Calendar.MONTH));    
        //catch exception 
    } catch (ParseException e) {   
            // TODO Auto-generated catch block  
            e.printStackTrace();   
        }   

出来的是:
月份1 = 0 Wat可能是问题??

2 个答案:

答案 0 :(得分:15)

尝试以下代码

    String date1 = "31/12/2011";
    SimpleDateFormat form = new SimpleDateFormat("dd/MM/yyyy");
    java.util.Date d1 = null;
    Calendar tdy1;

    try {
        d1 = form.parse(date1);
    } catch (java.text.ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    tdy1 = Calendar.getInstance();
    System.out.println("tdy mnthhhhhhhhhhh " + tdy1.get(Calendar.MONTH));
    tdy1.setTime(d1);

    System.out.println("Month of date1= " + tdy1.get(Calendar.MONTH));

注意“ Calendar.MONTH是返回整数值,它从0到11开始表示0 = 1月1日和11 = 12月

有关详情,请查看Calendar

答案 1 :(得分:5)

您的SimpleDateFormat初始化错误。小米是几分钟。你正在寻找大M,月份。 http://download.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html