我想用java获取当前时间并且将其格式转换成:"yyyy-MM-dd HH:mm:ss"类型。转换成功以后仍然为Date类型。请问这个应该怎么办?我从网上看了N多办法,要么是从String 转换成为Date(或者是SimpleDateFormat) ,要么是Date转换成为String。可是我现在需要的是将Date类型的变量改一个格式,而不改变其数据类型。请各位指点。

解决方案 »

  1.   

    Date类型的变量改一个格式:只有输出的时候才有格式
      

  2.   

    楼上的兄弟说的很对,我就是想将它输出的格式变成:yy-MM-dd HH:mm:ss 这样的。而且数据类型仍然不改变。
      

  3.   

    只有输出时才有格式,每次输出用new SimpleDateFormat("yy-MM-dd HH:mm:ss")就可以
      

  4.   

      如果是想在页面显示的话,sturuts2 有标签的 <s:date name="#ad.createTime" format="yyyy-MM-dd HH:mm:ss"/>
      如果是插入数据库的话,建议使用Timestamp型的
      

  5.   

    楼主,你可能有误区,你的想法是把一个Date类型的数据转化成yyyy-MM-dd HH:mm:ss格式后,能得到一个这样格式的Date,你是这意思吧。
    但是这绝对是不可能的,也就说你只能充String转Date或者充Date转String。
    只要是Date类型的,它的结果就是这样的Mon Jul 13 04:23:24 JST 2009
      

  6.   

    java api没有提供直接转换的方法.
    既然用到了格式化,就会出现类型的转换,所以说只有走一下弯路啦
      

  7.   

    大家已经说得很清楚了,你有这样的想法估计是你对Date还不熟悉。而我则走了个偏门。但是不推荐这样用。import java.util.Date;
    import java.text.SimpleDateFormat;
    class MyDate extends Date 
    {
    private static SimpleDateFormat sp = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    public MyDate(){
    super();
    }
    public MyDate(long time){
    super(time);
    }
    public String toString(){
    return sp.format(this);
    }
    public static void main(String args[]){
    Date d = new MyDate();
                    String result = d.toString();
    System.out.println(d);
    }
    }