2011-11-16 180 views
3

是否有可能將float轉換爲Java中的時間?在Java中將float轉換爲時間?

我新的Web服務,我試圖調用一個簡單的日出/日落時間web服務,這樣做的WSDL是here

我通過服務緯度(34.0888),經度(-118.40612),日,月,年,我有值返回:

日出:13.6935135 日落:26.607845

但值的花車,沒有人知道爲什麼會是什麼?或者如果有可能從他們那裏弄出一段時間?我認爲這可能是unix時間,但我沒有太多運氣。

任何幫助表示讚賞,感謝

+1

你確定那些不是雙打? – Woot4Moo

+0

根據WSDL,它們是浮動的,但沒有任何文檔來表示它們代表的內容。一旦你知道它們代表什麼,轉換爲時間就會向前邁進 –

+0

web服務返回浮動。我可以將它們分配給一個雙變量,但是我只得到13.093513488769531和26.607845306396484。 – ostegg548

回答

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

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

不知道爲什麼downvote的問題是你如何轉換花車時間。 – Woot4Moo

+0

感謝您的回覆,我的代碼出現錯誤,因爲我的日出值爲float: 無法調用原始類型float – ostegg548

+0

@ ostegg548上的longValue()更新。甚至沒有想過來回的拳擊。 – Woot4Moo

1

看來這不是Java的問題,你發現一個尚未得以接口web服務。我搜索了一個解決方案,我發現了幾個圖書館能夠計算日出和日落。例如,這是第一個結果:http://www.jstott.me.uk/jsuntimes/

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())); 
+0

對不起,我該怎麼做? – ostegg548

+0

我用一個例子更新了答案 –

+0

謝謝,確定它輸出正確的日期,但時間已關閉。它總是在沒有分鐘的時候出現。我用上面的代碼在加利福尼亞州的日出時間是15:00,而在英國是08.00。 – ostegg548