将日期和时间合并到时间戳中

时间:2014-10-30 09:40:13

标签: java

考虑这个程序:

import java.sql.Date;
import java.sql.Time;
import java.sql.Timestamp;

public class Program {

    public static void main(String[] args) throws Exception {
        Date d = new Date(System.currentTimeMillis());
        Time t = new Time(System.currentTimeMillis());
        System.out.println("d = " + d);
        System.out.println("t = " + t);

        Timestamp ti = new Timestamp(d.getTime() + t.getTime()); // not working
        System.out.println("ti = " + ti);
    }
}

我有日期变量d和时间t我如何从这两个变量创建时间戳?

2 个答案:

答案 0 :(得分:1)

问题是日期和时间实例的内部表示是相同的(System.currentTimeMillis())。

如果你想这样做,你必须从日期实例中删除时间部分,并从时间实例中删除日期部分:

public static void main(String args[]) {
    Date d = new Date(System.currentTimeMillis());
    Time t = new Time(System.currentTimeMillis());

    System.out.println("d = " + d);
    System.out.println("t = " + t);

    long dd = d.getTime() / 86400000l * 86400000l;
    System.out.println("dd = " + dd);
    long tt = t.getTime() - (t.getTime() / 86400000l * 86400000l);
    System.out.println("tt = " + tt);

    Timestamp ti = new Timestamp(dd + tt);
    System.out.println("ti = " + ti);
}

答案 1 :(得分:0)

简单的方法是用户“日历”类设置日期和时间。获取完整的时间戳。