我在跨SQL,jdbc,JVM和Linux的時區問題摔跤。我無法理解java.sql.date的文檔
我可以看到,我需要交給/從jdbc獲取的類是java.sql.date。所以我讀了文檔,不能做任何事情。
據我瞭解,雙方java.util.Data和java.sql.date持有數量,因爲毫秒爲單位的。
當我看定義的構造java.sql.date它說
「使用給定毫秒時間值構造一個Date對象。如果給定毫秒值包含時間信息,驅動程序會設置在默認時區(對應於零GMT)的默認時區(運行應用程序的Java虛擬機的時區)中的時間組件。「
OK - 問題1 - 什麼都可以「的意思。如果給定毫秒值包含時間信息」 - 顯然它包含了一些時間的信息!
難道他們的意思是「如果毫秒數你給的例行並不代表具體某一天的邊界,考慮到閏秒等等等等」?這聽起來是一個相當隨機的測試,以滿足/失敗!
還是他們的意思是「上天的份上給我們接近中午的東西,我們將它截斷到一天的問題開始
問題2 - 什麼?在的話,這是奇怪的條款「FOR」 - 這顯然是意在使一些齒輪齧合的正常行爲 - 但齒輪是他們
從表面上看,您的答案似乎與發佈的文檔相矛盾。 這表示「驅動程序將時間組件設置爲對應於零GMT的默認時區(運行應用程序的Java虛擬機的時區)」 我想這可能意味着包含的值在某一天或某一天總是在格林尼治標準時間午夜 - 儘管這是一種非常笨拙的說法。 –
如果它表示「一個java.sql.Date對象總是包含某天或其他時間的午夜格林尼治標準時間」,那麼這隻能是JVM在該對象被知道時已知的閏秒數創建。如果閏秒信息後來更新,同一時刻可以倒退到前一天! –