2010-04-01 83 views
5

如果我只安装了“日期”命令,如何在MSYS + MinGW for Windows上更改时区?这里没有“tzconfig”或“tzselect”。在MSYS中更改时区

当我尝试$ date --set =“Apr 01 23:08 UTC + 04:00” 我收到19:08 GMT + 0结果。

这对我来说非常重要,因为“make”命令总是会给我以后修改的文件带来错误。

+1

属于superuser.com – 2010-04-01 19:36:00

+0

MSYS使用Windows日期/时间。如果您需要更改这些,请通过Windows控制面板进行操作。 – 2010-04-01 19:38:11

+2

不,MSYS不会看到Windows设置! – d9k 2010-04-01 19:40:53

回答

12

我有同样的问题。我的时区是CET(GMT + 1)。

我已经通过设置环境变量TZ,像这样固定的:

export TZ=CET-1CEST 

之前设置可变我:

(DOS提示符)

c:\>time 
Huidige tijd: 17:08:32,40 

(MSYS壳)

$ date 
Mon Oct 25 15:08:54 GMT 2010 

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

在这个变量(DOS提示符)

c:\>time 
Huidige tijd: 17:14:30,80 

(MSYS壳)

$ export TZ=CET-1CEST 
$ date 
Mon Oct 25 17:15:05 CEST 2010 

的字段是

  • CET:您的时区名称
  • +/- X:以小时为单位的偏移量,从你的时区去GMT(在我的例子GMT滞后于欧洲中部时间一小时)
  • CEST:夏令时的时区的名称启用
  • (可选)+/- y:夏令时(DST)与GMT时区的偏差,以小时为单位。默认值是小时,所以你可以跳过它。

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

该参数可能需要更多的字段来定义DST何时开始和结束。如果您想了解更多信息,请参阅this page

0

这是从我的电脑上粘贴的&拷贝。启动Windows cmd.exe的提示 - 然后:

d:\Users\NeilB>time 
The current time is: 20:59:27.68 
Enter the new time: 21:59 

然后切换到MSYS的bash shell:

[[email protected] NeilB]$ date 
Thu Apr 1 21:59:31 GMTDT 2010 

通知的时间已经改变。这也可以使用控制面板。

+0

好吧,它改变了时间,但仍然在其他时区。所以当我将它改为0:26 cmd时,我在MSYS中得到了20:26。当我在MSYS中将时间更改为0:26时,我在窗口中获得了4:26。 所以我需要一个从MSYS控制台更改时区的方法。 – d9k 2010-04-01 20:36:55

+0

@ d9K所以你想要一个MSYS bash提示符和Windows在不同的时区?我不认为这是可能的。 MSYS不是一个操作系统,并没有自己的时间,日期或时区的概念。 – 2010-04-01 20:55:51

+0

@anon:日期和时间是系统的,但MSYS可以决定时区,甚至可以在不同时区有几个MSYS窗口。 – 2011-04-18 12:33:06

0

我遇到了相同的时区问题。我最好的办法是使用:date --date =“4小时前”,其中-4h是我的时区...它为我工作时间戳我的东西,但我不确定它会有什么帮助“make”...

0

根据记录,除了从海尔特伟大的答案,这是我加入到我的〜/ .bash_profile中,居住在法国:

export TZ=CET-1CEST-2 

而且它的伟大工程。