Назад | Перейти на главную страницу

strftime возвращает время для неправильного часового пояса

Я пытаюсь заставить "dts" отображать текущее местное время в vim (cygwin под Windows 7), на выходе получается GMT + 1 вместо местного времени (GMT-7). Моя аббревиатура отлично работает на других машинах, но я не могу заставить ее работать на этой.

Аббревиатура:

dts <expr> strftime("%m.%d.%Y %H:%M:%S")
Result: 3/27/2012 9:53:03 PM

В командной строке cygwin для TZ установлено America / Los_Angeles, а date команда выводит правильное время. Только когда я пытаюсь использовать strftime () под gvim, временная метка неверна. Я попытался добавить% z, чтобы увидеть смещение по Гринвичу, но результаты еще более сбивают с толку:

:iab qwe strftime("%c (%z)")
Result: 3/27/2012 9:53:03 PM (ric)

Я не смог понять, что означает «рик».

Я видел это также с gvim 7.3.46 и cygwin 1.7.13.

Я заметил, что у меня не было этой проблемы с gvim 7.3.46 и cygwin 1.7.9.

Я также заметил, что вывод date в каждом случае была разной:

 (cygwin 1.7.9) Sun Apr 29 23:25:04 EDT 2012
 (cygwin 1.7.13) Sun, Apr 29, 2012 11:25:09 PM

Интересно, если дополнение из tzset в 1.7.10 как-то с этим связано.