我在四臺機器上測試了以下代碼。其中兩個是windows(win7 & win8),另外兩個是linux(centos)。在Windows PC上的輸出是相同的(但與Linux不同)。來自不同服務器的java.sql.Time生成的不同輸出
java.sql.Time d = java.sql.Time.valueOf("19:54:17");
System.out.println(d.getTime());
的Windows輸出:50057000
Linux的輸出:93257000
的Windows:java version "1.6.0_26"
的Linux:java version "1.6.0_24"
時間是機器之間略有不同(2-3分鐘)。但Windows有UTC+6
和Linux有GMT+6
時區。
另一個信息。我也在this online Java compiler上運行過這段代碼,它顯示了輸出93257000
我只是想要所有機器的輸出相等。我該怎麼辦?
更新:爲您請求該代碼System.out.println(new Date(d.getTime()))
輸出:
的Windows:Thu Jan 01 19:54:17 ALMT 1970
的Linux:Thu Jan 01 19:54:17 GMT-06:00 1970
在線編譯:Thu Jan 01 19:54:17 CST 1970
找到你確定他們是在同一個時區?如果你打印'新日期(d.getTime());'? – assylias
java.sql.Time是java.util.Date的包裝類。你不能直接使用這個類嗎?如果是的話,也可以使用日曆。而且你的問題應該解決。 – Wooff