Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Changing timezone in MSYS

how can I change timezone on MSYS+MinGW for Windows if I have only "date" command installed? There are no "tzconfig" or "tzselect" here.

When I try $date --set="Apr 01 23:08 UTC+04:00" I receive 19:08 GMT+0 result.

This is very important for me because "make" command always gives me errors about files modified in future.

like image 932
d9k Avatar asked Apr 01 '10 19:04

d9k


1 Answers

I had the same issue. My timezone is CET (GMT+1).

I have fixed this by setting environment variable TZ, like so:

export TZ=CET-1CEST

Before setting the variable I had:

(dos prompt)

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

(msys shell)

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

After setting TZ=CET-1CEST it becomes:

(dos prompt)

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

(msys shell)

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

The fields in this variable are

  • CET: the name of your timezone
  • +/-x: the offset in hours to go from your timezone to GMT (in my example GMT lags one hour on CET)
  • CEST: the name of your timezone with daylight saving time enabled
  • (optionally) +/-y: the offset in hours from your timezone in daylight saving time (DST) to GMT. The default is on hour, so you can skip it.

Note that the first and third field are just used to display in the date string. You can just as well set it to FOO and BAR if you like, it's the second (and optionally fourth) field that do the actual time modification.

The parameter can take even more fields to define when DST starts and ends. If you like to read more about it, see this page.

like image 82
Geert Janssens Avatar answered Sep 28 '22 07:09

Geert Janssens