【发布时间】:2013-11-20 14:10:49
【问题描述】:
我有一个调度程序需要检查传入的时间戳是否是当天的时间戳。
传入时间戳的格式为 Eg:1384956395。
如何在java中检查这个?请帮忙。我没有使用 Joda
【问题讨论】:
-
你在用joda time吗?
标签: java timestamp unix-timestamp
我有一个调度程序需要检查传入的时间戳是否是当天的时间戳。
传入时间戳的格式为 Eg:1384956395。
如何在java中检查这个?请帮忙。我没有使用 Joda
【问题讨论】:
标签: java timestamp unix-timestamp
您发布的时代以秒为单位。 Java 使用毫秒,因此您必须对其进行转换,然后将两者进行比较。
long epochInMillis = epoch * 1000;
Calendar now = Calendar.getInstance();
Calendar timeToCheck = Calendar.getInstance();
timeToCheck.setTimeInMillis(epochInMillis);
if(now.get(Calendar.YEAR) == timeToCheck.get(Calendar.YEAR)) {
if(now.get(Calendar.DAY_OF_YEAR) == timeToCheck.get(Calendar.DAY_OF_YEAR)) {
}
}
如果您不想使用默认时区,也可以更改时区,以防输入纪元位于不同的时区。
【讨论】:
假设您的时间戳是通过System.currentTimeMillis()(或任何其他兼容机制)创建的,您可以执行以下操作:
创建一个Calendar 实例并将小时、分钟、秒和毫秒字段设置为零。这是今天 0:00:00,0。
克隆实例并添加 1 天。您将在明天 0:00:00,0 到达。
现在检查您的时间戳是否在today.getTime()(包括)和tomorrow.getTime()(不包括)之间的范围内。
【讨论】: