如何找到当前的纪元时间戳位于java中给定的两个纪元时间戳之间。
答案 0 :(得分:0)
正如@Akstar建议的那样,你可以使用Java Date
。
Date.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)
,并假设您不知道date1
和date2
中的哪一个更早)
使用日期的长表示,例如return myDate.getTime() < time1.getTime()) != (myDate.getTime() < time2.getTime()));
使用Date的after/before
方法。例如return (myDate.after(date1) != myDate.after(date2));
Joda有很好的API来表示日期时间范围,例如Interval
,您可以使用contains()
来确定它是否包含特定时间。