使用Jdk8。 我試圖將實際上只有幾小時的時間(如1130)轉換爲DateTime。我正在嘗試2種方式,因爲它們都不能正常工作。 1130被轉換爲11:00並且另一個3:00沒有一個是正確的。還有第三種方式命名我的時區。Java TimeZoneOffset時間轉換
Long ltime = Long.parseLong("1130");
Long seconds = (ltime/100)*60*60;
LocalDateTime tsutcDttime = LocalDateTime.ofEpochSecond(seconds, 0, ZoneOffset.UTC);
LocalDateTime lclDttime = LocalDateTime.ofInstant(Instant.ofEpochSecond(seconds), ZoneId.systemDefault());
System.out.println("ZoneId.systemDefault: " +ZoneId.systemDefault());
System.out.println("UTC LocalDateTime : "+ tsutcDttime);
System.out.println("Sys Def LocalDateTime : "+ lclDttime);
ZoneId.systemDefault:美洲/洛杉磯
UTC LocalDateTime:1970-01-01T 11:00
Sys系統默認值LocalDateTime:1970-01-01T 03:00
此問題通過以下解決。
這個問題 對於我的一些時間的成分的第2部分我有一個日期和其他一些我不知道(但我要的一切轉換成日期時間反正。
如何添加實際??年月日時我有我沒有看到一個方法LOCALDATE的(日期)對於其他人就乾脆讓默認到1970年,除非更好的SOLN存在 下面只是把1970年日期:
LocalDateTime localDateTime = LocalDateTime.ofEpochSecond(secondsOfDay, 0, ZoneOffset.UTC);
但是,當我有一個日期,我想將它添加到secondsOfDay和Cre吃了我的日期時間 - 如何。如日期= 2016年1月1日+ secondsOfDay
感謝
「1130」字符串推測爲11小時30分鐘tes,這段代碼將該值視爲1130/100小時,這是不相同的。 –
@all對不起我的愚蠢代碼,我在想什麼。是的,建議的解決方案將工作。 @ greg-449'LocalTime localTime = LocalTime.parse(「1130」,DateTimeFormatter.ofPattern(「HHmm」));'這正是我正在尋找的優雅解決方案 - 我知道這樣的事情應該存在。我對這個問題的第二部分有一些我的時間組件,我有一個日期和其他一些我沒有(但我必須將所有東西都轉換爲日期時間。我有什麼時候添加實際日期?我不是看到一個方法LocalDate(日期)?對於其他人將簡單地讓默認爲1970年,除非存在一個soln –
@ Sam-T對不起,但我不明白你問的問題。 –