在Java中将float转换为时间?

时间:2011-11-16 16:13:20

标签: java web-services time floating-point

是否可以在Java中将浮点数转换为时间?

我是Web服务的新手,我正在尝试调用一个简单的日出/日落时间webservice,这个的WSDL是here

我已经通过该服务的纬度(34.0888),经度(-118.40612),日,月和年,我有价值回来了:

日出:13.6935135 日落:26.607845

但价值观是浮动的,有谁知道为什么会这样?或者,如果有可能从他们那里计算出来的时间?我认为这可能是unix时间,但我没有太多运气。

感谢任何帮助,谢谢

4 个答案:

答案 0 :(得分:3)

相对于UTC,这可能是几个小时。我会尝试这样的事情:

Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.add(Calendar.HOUR_OF_DAY, (int) sunrise);
calendar.set(Calendar.MINUTE, (sunrise * 60) % 60);
calendar.set(Calendar.SECOND, (sunrise * 3600) % 3600);

然后使用DateFormat

在所需的时区中显示日期
DateFormat fmt = new SimpleDateFormat();
fmt.setTimeZone(TimeZone.getTimeZone("Europe/Paris")); 
System.out.println(fmt.format(calendar.getTime()));

答案 1 :(得分:3)

计算起来看起来不是一件微不足道的事情...这里有一个完整的包来处理:https://github.com/mikereedell/sunrisesunsetlib-java

答案 2 :(得分:1)

Float sunriseFloat = new Float(sunrise);  
Float sunsetFloat = new Float(sunset);

    Date startDate = new Date(sunriseFloat.longValue());  
    Date endDate = new Date(sunsetFloat.longValue());

答案 3 :(得分:1)

这似乎不是一个java问题,你发现了一个带有未指定接口的web服务。我搜索了一个解决方案,我找到了几个能够计算日出和日落的图书馆。例如,这是最初的结果之一:http://www.jstott.me.uk/jsuntimes/