在MSYS中更改时区

d9k*_*d9k 5 windows timezone datetime mingw msys

如果我只安装了"date"命令,如何在MSYS + MinGW for Windows上更改时区?这里没有"tzconfig"或"tzselect".

当我尝试$ date --set ="Apr 01 23:08 UTC + 04:00"时,我收到19:08 GMT + 0结果.

这对我来说非常重要,因为"make"命令总是让我对将来修改的文件有误.

小智 12

我遇到过同样的问题.我的时区是CET(GMT + 1).

我通过设置环境变量TZ修复了这个问题,如下所示:

export TZ=CET-1CEST
Run Code Online (Sandbox Code Playgroud)

在设置变量之前我有:

(dos提示)

c:\>time
Huidige tijd: 17:08:32,40
Run Code Online (Sandbox Code Playgroud)

(msys shell)

$ date
Mon Oct 25 15:08:54 GMT 2010
Run Code Online (Sandbox Code Playgroud)

设置TZ = CET-1CEST后,它变为:

(dos提示)

c:\>time
Huidige tijd: 17:14:30,80
Run Code Online (Sandbox Code Playgroud)

(msys shell)

$ export TZ=CET-1CEST
$ date
Mon Oct 25 17:15:05 CEST 2010
Run Code Online (Sandbox Code Playgroud)

这个变量中的字段是

  • CET:您的时区名称
  • +/- x:从您的时区到GMT的小时偏差(在我的示例中,GMT在CET上滞后一小时)
  • CEST:启用夏令时的时区名称
  • (可选)+/- y:从夏令时(DST)到GMT的时区偏差(以小时为单位).默认值为小时,因此您可以跳过它.

请注意,第一个和第三个字段仅用于显示日期字符串.如果您愿意,也可以将其设置为FOO和BAR,它是执行实际时间修改的第二个(也可选择第四个)字段.

DST开始和结束时,该参数可以使用更多字段来定义.如果您想了解更多信息,请参阅此页面.