如何在java中找到epoch时间戳的区别

时间:2014-02-17 04:08:41

标签: java

如何找到当前的纪元时间戳位于java中给定的两个纪元时间戳之间。

3 个答案:

答案 0 :(得分:0)

正如@Akstar建议的那样,你可以使用Java DateDate.getTime()方法返回long,表示自纪元以来的毫秒数。

因此,只需将Date个对象转换为long并比较值即可。

答案 1 :(得分:0)

Joda-Time库是臭名昭着的java.util.Date& amp;与Java捆绑在一起的日历类。

在Joda-Time中,DateTime对象代表宇宙时间轴上的一个点。虽然类似于java.util.Date,但DateTime的不同之处在于它确实知道自己的时区。

Joda-Time提供了一个Interval类,用于定义时间轴的开头和结尾。间隔为“半开”,表示开头为包含,结尾为独占。半开放通常是处理一段时间的好方法。 Interval对象提供contains方法来测试给定的DateTime是在内部还是外部。

Interval interval = new Interval( new DateTime( 2013, 1, 1, 0, 0, 0, DateTimeZone.forID( "America/Montreal" ) ), new DateTime( 2013, 1, 5, 0, 0, 0, DateTimeZone.forID( "America/Montreal" ) ) );
DateTime now = new DateTime( DateTimeZone.forID( "Europe/Paris" ) );
boolean isNowInThatInterval = interval.contains( now );

如果您在发布之前搜索StackOverflow,您会发现许多此类问题已经得到解答。

答案 2 :(得分:0)

首先,我相信你所说的是时间戳(而不是“纪元时间戳”)对吗?

鉴于Java中的时间戳通常由java.util.Date表示,您可以使用以下几种方法:

(假设我们正在实施方法static boolean isBetween(Date myDate, Date date1, Date date2),并假设您不知道date1date2中的哪一个更早)

  1. 使用日期的长表示,例如return myDate.getTime() < time1.getTime()) != (myDate.getTime() < time2.getTime()));

  2. 使用Date的after/before方法。例如return (myDate.after(date1) != myDate.after(date2));

  3. Joda有很好的API来表示日期时间范围,例如Interval,您可以使用contains()来确定它是否包含特定时间。