如何根据日期获取时间戳(获取特定日期时间的时间戳)

时间:2015-03-10 10:42:48

标签: java timestamp

请解决我的问题

我正在获得日期为16-03-2015 23:05的时间戳   以及17-03-2015 00:10

我在16-03-2015 23:05通过17-03-2015 00:10时间戳作为参数调用after()方法

我的问题是时间戳只考虑时间

所以在这种情况下 timmestamp 23:05这大于00:10

但是当我们与日期17-03-2015 00:10比较时,比16-03-2015 23:05

我想根据日期得到时间戳有什么方法可以找到 请帮忙

1 个答案:

答案 0 :(得分:1)

你使用什么时间戳?当我尝试使用java.sql.Timestamp重现您的案例时,一切正常:

import java.sql.Timestamp;
import java.util.Calendar;
import java.util.Date;

public class TimestampProblem {

    public static void main(String[] args) {
        Calendar c = Calendar.getInstance();
        long now = c.getTimeInMillis();
        Timestamp t = new Timestamp(now);
        // add only 23 hours in order to have less hours at next day
        c.add(Calendar.HOUR, 23);
        long later = c.getTimeInMillis();
        Timestamp t2 = new Timestamp(later);
        System.out.println(t2);

        System.out.println(t.before(t2) ? "alright: <" + t + "> before <" + t2
                + ">" : "Bäm");

        Date d = new Date(now);
        Date d2 = new Date(later);

        System.out.println(d.before(d2) ? "alright: <" + d + "> before <" + d2
                + ">" : "Bäm");
    }

}

输出:

Timestamp comparison alright: <2015-03-10 12:01:47.061> before <2015-03-11 11:01:47.061>
Date comparison alright: <Tue Mar 10 12:01:47 CET 2015> before <Wed Mar 11 11:01:47 CET 2015>

也许您可以添加代码段。