是否可以在Java中将浮点数转换为时间?
我是Web服务的新手,我正在尝试调用一个简单的日出/日落时间webservice,这个的WSDL是here
我已经通过该服务的纬度(34.0888),经度(-118.40612),日,月和年,我有价值回来了:
日出:13.6935135 日落:26.607845
但价值观是浮动的,有谁知道为什么会这样?或者,如果有可能从他们那里计算出来的时间?我认为这可能是unix时间,但我没有太多运气。
感谢任何帮助,谢谢
答案 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/