为什么我的可移动媒体上的时间戳采用 UTC 时间?

为什么我的可移动媒体上的时间戳采用 UTC 时间?

我正在运行Debian 8,并且我的可移动媒体(SD 卡、USB 记忆棒)上的所有文件都显示时间戳被解释为UTC,而不是我的本地时间?这是怎么回事? date给我正确的当地时间(太平洋夏令时)。此错误时间问题仅发生在可移动媒体上。在我以前的 GNU/Linux 上从未见过这样的问题!

$ uname -v
#1 SMP Debian 3.16.7-ckt25-1 (2016-03-06)

例子(删除非日期输出):

今天早上在我的工作电脑上:

$ touch /media/newfile; date; stat /media/newfile
Mon May  2 08:34:47 PDT 2016
"May  2 00:00:00 2016" "May  2 08:34:46 2016" "May  2 08:34:46 2016" "May  2 08:34:46 2016"

在我家里的 Debian 8 系统上:

/media/disk$ touch newfile2; date; stat newfile2
Mon May  2 21:53:42 PDT 2016
Access: 2016-05-02 21:53:42.000000000 -0700
Modify: 2016-05-02 21:53:42.000000000 -0700
Change: 2016-05-02 21:53:42.000000000 -0700

ls 输出显示“newfile”的时间变化(应该是 08:34)

/media/disk$ ls -al newfile*
-rw-r--r-- May  2 01:34 newfile
-rw-r--r-- May  2 21:53 newfile2

答案1

简短的回答是要么始终使用 UTC 作为所有访问媒体的设备的时区,要么不要对可移动媒体使用 FAT32 而使用 NTFS 或类似文件:

Windows和Linux存储时间戳的方式不同,并且由于文件时间戳存储的是本地时间而不存储时区,因此存在棘手的问题。

https://msdn.microsoft.com/fr-fr/library/windows/desktop/ms724290(v=vs.85).aspxhttp://www.pascal-hacker.de/info/it/sw/dst.htm了解详情。

相关内容