太郁闷了,我的程序
import java.util.Date;
public class test001
{
public static void main(String args[])
{
Date today=new Date();
String Year=""+(1900+today.getYear());
String Month=""+today.getMonth();
if(Month.length()==1)
Month="0"+Month;
String day=""+today.getDate();
if(day.length()==1)
day="0"+Month;
String date=Year+Month+day;
System.out.println(date);
}
}
String Month=""+today.getMonth();得到的时间居然是当前月-1。
我把系统时间改为1月,Month的值居然变成了00........
请问各位知道是什么原因吗??

解决方案 »

  1.   

    没错Date中的月份是这样定义的    @Deprecated
        public int getMonth() {
    return normalize().getMonth() - 1; // adjust 1-based to 0-based
        }
      

  2.   

    嗯。import java.util.Date;public class test001
    {
    public static void main(String args[])
    {
    Date today=new Date();
    String Year=""+(1900+today.getYear());
    String Month=""+(today.getMonth()+1); if(Month.length()==1)
    Month="0"+Month;
    String day=""+today.getDate();
    if(day.toString().length()==1)
    day="0"+Month;
    String date=Year+Month+day;
    System.out.println(date);
    }
    }
      

  3.   

    也可以这么写import java.util.Date;
    import java.lang.String;public class test001
    {
    public static void main(String args[])
    {
    Date today=new Date();
    String Year=""+(1900+today.getYear());
    String Month=("0"+(today.getMonth()+1)).substring(("0"+(today.getMonth()+1)).length()-2);
    String day=("0"+today.getDate()).substring(("0"+(today.getDate())).length()-2);
    String date=Year+Month+day;
    System.out.println(date);
    }
    }