我现在要写一个方法,检查我调用别人的webservice接口是否在起始时间和结束时间之内(是否为有效时间),如果是让其调用接口,如果不是就不让它调用人家的接口。该怎么写呢?谢谢!
[code="java"]
public static boolean checkTime(Date beginDate, Date endDate)
{
Date now = new Date(System.currentTimeMillis());
return now.after(beginDate) && now.before(endDate);
}
[/code]
在调之前new Date判断下不好么?
另外有点值得确定,所说的时间还是webservices服务端的时间还是客户端的时间
假设你的时间都是 java.util.Date 类型的,并且已知:起始时间,设为 startTime,结束时间,设为 endTime
[code="java"]
public boolean checkTime(Date timeToBeChecked) {
return (timeToBeChecked.before(endTime) && timeToBeChecked.after(startTime));
}
[/code]
如果你的时间格式不是这样的,请你把它写出来,同样可以帮你搞定
如果是服务器时间,那就只能从服务端控制了。。。
即使你能获取到服务器时间,但还有一个临界点的问题:获取的时间符合要求,调用的时候已经过了时间
HI
boolean after(Date when) 测试此日期是否在指定日期之后。
boolean before(Date when) 测试此日期是否在指定日期之前。
把日期在你要的时间段内做比较就可以了
[quote]起始和结束时间是人家服务器的时间。[/quote]
那你能不能取到?如果不能取到你怎么判断?
[quote]------------------------------------------------------------------------------------------------------------------
问题补充:
nju_abc 写道
Java代码
public static boolean checkTime(Date beginDate, Date endDate)
{
Date now = new Date(System.currentTimeMillis());
return now.after(beginDate) && now.before(endDate);
}
public static boolean checkTime(Date beginDate, Date endDate)
{
Date now = new Date(System.currentTimeMillis());
return now.after(beginDate) && now.before(endDate);
}
起始和结束时间是人家服务器的时间。你这样只是返回了其实和结束时间,我想知道的是如何才能判断是在这个时间之内?是的话才能调用接口,不是就不调用。 [/quote]
我不清楚你的需求到底是下面哪一种?
1、服务提供方只在某个时间段内提供服务,那么服务方接受到请求时,判断当前时间是否在正确的时间段内,如果不在,拒绝提供服务。时间段是由服务方自行设定。
2、服务客户端只在某个时间段内才去消费服务,在调用服务之前先判断当前时间是否在时间段内。时间段由客户端定义。
第一种情况,这种逻辑应该由服务提供方实现;第二种情况,逻辑属于客户端,由客户端实现,时间段的设定也应该由客户端自己设定,如果服务端提供了开始时间、结束时间两个服务,客户端也可以使用服务端提供的服务来设置自己的时间段。