DateFormat.getDateTimeInstance返回的不是DateFormat的实例,而是他的一个子类SimpleDateFormat,你看看jdk的代码就知道了

解决方案 »

  1.   

    getDateTimeInstance( ) 类试个简单工厂模式,它返回的是它的子类 SimpleDateFormat 实例
      

  2.   

    public static final DateFormat getDateTimeInstance()
    这是api的原话啊?
      

  3.   

    当然SimpleDateFormat也是一个DateFormat,这就是Polymorphism(多态)的好处了^_^
      

  4.   

    DateFormat shortDateFormat = new DateFormat();
    上面这句是肯定错误的,因为抽象类可以生成对象,但它的对象不能用抽象类来实例化
    你必须用
    DateFormat shortDateFormat = new SimpleDateFormat();
    来将shortDateFormat 对象实例化,
    或用其它方法返回DateFormat 抽象类的一个子类的实例,如上面的DateFormat.getDateTimeInstance
    注意看一下具体函数的返回值
      

  5.   

    DateFormat is an abstract class for date/time formatting subclasses which formats and parses dates or time in a language-independent manner. The date/time formatting subclass, such as SimpleDateFormat, allows for formatting (i.e., date -> text), parsing (text -> date), and normalization. The date is represented as a Date object or as the milliseconds since January 1, 1970, 00:00:00 GMT.
      

  6.   

    “所有父类可以存在的地方,子类一定可以存在”你难道没这样用过?Vector a = new Vector();
    a.add("lalalala");
    System.out.println((String)a.get(0));