2010-04-01 8 views
5

Как изменить часовой пояс на MSYS + MinGW для Windows, если у меня установлена ​​только команда «date»? Здесь нет «tzconfig» или «tzselect».Изменение часового пояса в MSYS

Когда я пытаюсь $ date --set = "Apr 01 23:08 UTC + 04: 00" Получать 19:08 GMT + 0 результат.

Это очень важно для меня, потому что команда «make» всегда дает мне ошибки о файлах, измененных в будущем.

+1

Принадлежит superuser.com –

+0

MSYS использует дату и время Windows. Если вам нужно изменить их, сделайте это с помощью панели управления Windows. – 2010-04-01 19:38:11

+2

НЕТ, MSYS не видит настройки Windows! – d9k

ответ

12

У меня была та же проблема. Мой часовой пояс - CET (GMT + 1).

Я установил это, устанавливая переменную окружения TZ, например, так:

export TZ=CET-1CEST 

Перед установкой переменной я имел:

(DOS Prompt)

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: название вашего часового пояса
  • +/- х: смещение в часах, чтобы перейти от вашего часового пояса по Гринвичу (в моем примере GMT ​​запаздывает на один час по центральноевропейскому)
  • CEST: название вашего часового пояса с переходом на летнее время включен
  • (опционально) +/- y: смещение в часах от вашего часового пояса в летнее время (DST) до GMT. Значение по умолчанию - час, поэтому вы можете пропустить его.

Обратите внимание, что первое и третье поля используются только для отображения в строке даты. Вы можете просто установить его в FOO и BAR, если хотите, это второе (и, возможно, четвертое) поле, которое делает фактическое изменение времени.

Параметр может принимать еще больше полей, чтобы определить, когда начинается и заканчивается DST. Если вы хотите больше узнать об этом, см. this page.

0

Это копия &, вставленная с моего ПК. Запустите cmd.exe приглашение для Windows - и затем:

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

Затем перейти на Баш оболочки MSYS:

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

Обратите внимание на время изменилось. Это также работает с помощью панели управления.

+0

ОК, это изменяет время, но все равно в другой часовой пояс. Поэтому, когда я меняю его на 0:26 в cmd, я получаю 20:26 в MSYS. Когда я меняю время на 0:26 в MSYS, я получаю 4:26 в окнах. Так что мне нужен способ изменения часового пояса от консоли MSYS. – d9k

+0

@ d9K Итак, вы хотите, чтобы приглашение MSYS bash и Windows находились в разных часовых поясах? Я не думаю, что это возможно. MSYS не является операционной системой и не имеет понятия о своем времени, дате или часовом поясе. – 2010-04-01 20:55:51

+0

@anon: дата и время системы, но MSYS может решить часовой пояс, и вы даже можете иметь несколько окон MSYS в разных часовых поясах. –

0

Я столкнулся с проблемой того же часового пояса. Мой лучший выстрел состоял в том, чтобы использовать: date --date = «4 часа назад», где -4h - мой часовой пояс ... Это сработало для меня, чтобы время отпечатать мои вещи, но я не уверен, что он будет полезен для "make" ...

0

Для записи, в дополнение к большой ответ от Geert, вот что я добавил к моему ~/.bash_profile, живущий во Франции:

export TZ=CET-1CEST-2 

И он прекрасно работает.

Смежные вопросы