public class Da
{
 public static void main(String args[])
 {
 
   java.sql.Date nDate=new java.sql.Date(2010,12,02);
String st2=nDate.toString();
System.out.println("st2:"+st2);
 }}
为什么结果是:st2:3911-01-02
难道不是:2010-12-02

解决方案 »

  1.   

    public class da 
    {
    public static void main(String args[])
    {
    java.sql.Date DATE = NEW java.sql.Date(2010,10,02);
    String s1 = DATE.toString();
    System.out.println("======>"+s1);
    }}
    这样的话会打印出来===========>2010-12-02;
      

  2.   

    year - 1900
    月份从0算起
      

  3.   

    我找到方法了,,应该这样:
    public   class   Da 

      public   static   void   main(String   args[]) 
      { 
      
        java.sql.Date   nDate=new   java.sql.Date(2010-1901,12,02); 
    String   st2=nDate.toString(); 
    System.out.println("st2:"+st2); 
      } } 
    输出就对了》
      

  4.   

    @Deprecated
    public Date(int year,
                           int month,
                           int day)已过时。 使用构造方法 Date(long date) 替代 构造一个使用给定 year、month 和 daya 初始化的 Date 对象。 
    如果给定参数超出范围,则结果是不确定的。 
    参数:
    year - year 减去 1900,它必须是 0 到 8099 之间的数。(注意,8099 是由 9999 减去 1900 得到的。)
    month - 0 到 11 之间的数
    day - 1 到 31 之间的数
    java.sql.Date   nDate=new   java.sql.Date(2010,11,02); 
    输出来是st2:3910-12-02
    时间从1900开始算,月份从1开始算,日从0开始算