Batch file 当GMT更改为BST时,我的时间和日期戳目录会被覆盖吗?

Batch file 当GMT更改为BST时,我的时间和日期戳目录会被覆盖吗?,batch-file,cmd,Batch File,Cmd,使用这篇文章“我已经创建了一个脚本,在我做事情时,它会在一些目录上标记日期和时间 REM *** Get time in UTC format, and set to variable called dame for /f %%x in ('wmic path win32_utctime get /format:list ^| findstr "="') do set %%x set dame=%Year%-%Month%-%Day%_%Hour%-%Minute% set rundir=%d

使用这篇文章“我已经创建了一个脚本,在我做事情时,它会在一些目录上标记日期和时间

REM *** Get time in UTC format, and set to variable called dame
for /f %%x in ('wmic path win32_utctime get /format:list ^| findstr "="') do set %%x
set dame=%Year%-%Month%-%Day%_%Hour%-%Minute%

set rundir=%dame%

mkdir %rundir%
我的脚本还有其他部分,但它基本上创建了一个目录结构,如下所示:

2018-3-22_14-10 (parent folder)
 |- Sun_2018-3-22_14-10 (sub folder)
 |- Sat_2018-3-22_14-10 (sub folder)
 |- Fri_2018-3-22_14-10 (sub folder)
 |- Thu_2018-3-22_14-10 (sub folder)

 etc.
我在英国,本周末GMT改为BST时,我要做一些测试。我将使用任务调度程序每5或10分钟运行一次脚本

我的问题如下:;假设脚本在本周末创建了这样一个目录:

2018-3-25_00-55 (parent folder)
 |- Sun_2018-3-25_00-55 (sub folder)
 |- Sat_2018-3-25_00-55 (sub folder)
 |- Fri_2018-3-25_00-55 (sub folder)
 |- Thu_2018-3-25_00-55 (sub folder)

 etc.
也就是说,3月25日星期日00:55跑步

英国夏令时3月25日星期日01:00开始。我的文件夹会被覆盖吗

我认为情况并非如此,原因有二:

1) 时钟在向前移动,所以我看到的下一个父文件夹将是“2018-3-25_02-00”最坏情况,并且没有写过什么

2) 但是,我使用的是来自wmic的UTC,而不是本地服务器时间来获取日期/时间。因此,记录的当地时间为02:00(UTC+1小时)。由于我使用UTC,文件夹创建应保持在UTC+0小时,因此我将看到的下一个父文件夹是“2018-3-25_01-00”


按照这个逻辑,当BST再次返回GMT时,我不必担心写得过多,因为UTC不应该改变?

所以。。。周末运行成功,文件夹结构创建如下:

2018-3-22_14-10 (parent folder)
 |- Sun_2018-3-22_14-10 (sub folder)
 |- Sat_2018-3-22_14-10 (sub folder)
 |- Fri_2018-3-22_14-10 (sub folder)
 |- Thu_2018-3-22_14-10 (sub folder)

 etc.

“修改日期”跳变2小时,以反映GMT+1小时(BST),文件夹名称反映UTC时间继续不受影响


结论:如果处于夏令时调整的时区;使用UTC可确保日期/时间的连续性。

我假设您在NTFS格式的分区上创建文件夹,该分区以UTC格式存储文件/文件夹日期,这意味着对于真正存储的日期,夏时制时间更改不会出现时间跳变,但返回文件/文件夹的本地时间日期,从而导致夏令时更改时所有文件夹和文件的时间跳变。你可以通过改变时区看到这一点。有关通过各种文件系统和Windows版本存储和显示日期的更多详细信息,请参阅我的答案。谢谢@Mofi,这是一篇有趣的文章。本质上,我认为你已经回答了我的问题!因为我使用的是UTC,它在一年中不会改变。日期/时间文件夹创建应保持静态,无论它根据本地时间的显示方式如何。是的,由于您使用UTC时间定义文件夹名称,名称中包含日期和时间,夏令时调整并不重要。UTC时间不会因夏令时调整而改变。UTC时间连续增加。计算机的UTC时间仅在与时间服务器的更精确时间同步时更改。通常用于时间同步的NTP和PTP也使用UTC时间。