我正在試圖監視文件以查找在Windows或Linux上運行的Java中的更改。File.lastModified值會一直增加嗎?
目前我正在研究輪詢文件的最後修改的屬性,而不是掛鉤到OS文件事件中,以避免處理平滑API差異和處理異步事件。
一旦我處理完文件並比較新的lastModified
結果,每x
秒,我就會保存new File("path").lastModified()
的結果。
我可以依靠的事實是,假設沒有犯規和有人手動修改時間戳,lastModified會一直增加嗎? Java文檔說它是GMT時代的一個偏移量,所以假設它即使在時區調整後也不會倒退?
通常情況下,即使在時移區域中也是如此。 –
我不明白你怎麼可以假設'沒有犯規',也沒有人'手動修改時間戳'。您也不能假定CPU時鐘從不倒退:在DST結束時,它至少每年發生一次。如果文件在一小時內修改兩次,甚至可能比以前更長59分59秒。 – EJP
@EJP:夏令時僅僅是一個時區問題,而且OP是正確的,僅憑這一點就不會導致日期的實際值(或在這種情況下是時間戳)向後(僅以不同的格式)。 –