我遇到'Google Drive Web APIs'的'setModifiedDate()'方法的問題,我不知道它是通過設計還是bug 。Google Drive SDK getModifiedDate()與setModifiedDate()不同
當更新使用下面的結構修改日期:
DateTime md = DateTime.parseRfc3339("2014-11-02T12:09:58.000-07:00");
File body = new File().setModifiedDate(md);
service.files().patch(id, body).setSetModifiedDate(true).execute();
的日期/時間正確更新。請注意,輸入日期時間變量MD可以顯示爲
2014-11-02T12:09:58.000-07:00, and
md.getTimeZoneShift() reports -420 minutes
當使用例如這個結構以後讀取該文件的修改日期:
FileList gLst = service.files().list().execute();
for (File gFl : gLst.getItems())
md = gFl.getModifiedDate();
日期時間「MD」變量有正確的GMT時間,但時移(UTC偏移)信息丟失。 的時間將被報告爲
2014-11-02T19:09:58.000Z and
md.getTimeZoneShift() reports 0 minutes
這肯定是正確的ZULU(GMT)時間的文件,但它從我的時區修飾的事實(GMT-07:00)都將丟失。我期望得到相同的日期時間格式,即
2014-11-02T12:09:58.000-07:00
and md.getTimeZoneShift() reports -420 minutes
當我修補。
這是正確的行爲,還是我錯過了什麼?
謝謝,這是我的想法。這個問題在'爲什麼你會丟掉一段(可疑的有價值的)信息,如果僅僅在存儲和帶寬上花費你一個字節'這個問題上更具學術性。我碰到一個場景,我正在驗證一個文件名(與編碼的日期時間)對修改日期。因此,當閱讀非GMT時區的文件時,比較結果就顯得很糟糕。我當然可以解決它,但'只是想知道'。 – seanpj 2014-11-03 13:05:36
啊,這似乎更像是一個問題,是否有人會這樣做,我們沒有一個確切的答案。關於「爲什麼服務器使用UTC」,這取決於它。 * [服務器是否應將其時區設置爲GMT/UTC?](服務器故障)(http://serverfault.com/questions/191331/should-servers-have-their-timezone-set-to-gmt-utc)*闡明瞭各種可能的優點/缺點。 – 2014-11-03 15:07:15