最近正在做的一个项目使用Java在同一个客户端中Consume多个REST类型的WebService,包括Yahoo! Search API, YouTube Video API和Flickr。
我这里想说的不是如何使用Java来调用这几个知名的WebService,而是我个人在客户端制作过程中编写的几个简单实用的函数。关于Java调用WebService的具体方法和方案,我会在稍后的系列日志中详细说明。
说明:由于我本人也是正式接触Java不久,如果以下函数有不妥的地方,请告诉我。
1、Java中的向上取整:
我们知道,在PHP中如果要对一个浮点数进行向上取整操作,只需要使用PHP的内置函数ceil即可。
比如,要将1/3向上取整为1,只需要如下操作:
echo ceil(1/3);
那么在Java中,我们也可以编写一个小函数来实现上面的功能:
public int ceil(int a, int b){
return(((double)a/(double)b)>(a/b)?a/b+1:a/b);
}
2、Java中将Unix时间戳字符串转换成普通日期格式。
//Convert Unix timestamp to normal date style
private String TimeStamp2Date(String timestampString){
Long timestamp = Long.parseLong(timestampString)*1000;
String date = new java.text.SimpleDateFormat("dd/MM/yyyy hh:mm:ss").format(new java.util.Date(timestamp));
return date;
}
在调用Yahoo! News Search的WebService中,当我们提交了一个REST请求之后,假定Yahoo服务器回传给我们一个XML格式文档(假定是因为REST可以以多种格式回传数据流,比如JSON和CSV),此时每条新闻的日期均采用Unix时间戳来显示。在实际运用中,我们需要将它们转换成人们可以理解的正常格式。这就用到了下面我写的这个简单函数。
FAQ:什么是Unix时间戳?
Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或Unix timestamp)是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。