2010-04-01 7 views
5

làm cách nào tôi có thể thay đổi múi giờ trên MSYS + MinGW cho Windows nếu tôi chỉ cài đặt lệnh "ngày"? Không có "tzconfig" hoặc "tzselect" tại đây.Thay đổi múi giờ trong MSYS

Khi tôi thử $ date --set = "Apr 01 23:08 UTC + 04: 00" Tôi nhận được 19:08 GMT + 0 kết quả.

Điều này rất quan trọng đối với tôi vì lệnh "make" luôn cho tôi lỗi về các tệp được sửa đổi trong tương lai.

+1

Thuộc về superuser.com –

+0

MSYS sử dụng ngày/giờ của Windows. Nếu bạn cần thay đổi chúng, hãy làm điều đó thông qua Bảng điều khiển Windows. –

+2

KHÔNG, MSYS không thấy cài đặt Windows! – d9k

Trả lời

12

Tôi gặp vấn đề tương tự. Múi giờ của tôi là CET (GMT + 1).

Tôi đã cố định này bằng cách thiết lập biến môi trường TZ, như vậy:

export TZ=CET-1CEST 

Trước khi thiết lập các biến tôi đã:

(DOS prompt)

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

(msys shell)

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

Sau khi thiết lập TZ = CET-1CEST nó trở thành:

(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 

Các lĩnh vực trong biến này là

  • CET: tên múi giờ của bạn
  • +/- x: bù đắp trong giờ để đi từ múi giờ của bạn lấy múi giờ GMT (trong ví dụ của tôi giờ chậm một giờ trên CET)
  • CEST: tên của múi giờ của bạn với ánh sáng ban ngày tiết kiệm thời gian kích hoạt
  • (tùy chọn) +/- y: chênh lệch theo giờ từ múi giờ của bạn trong giờ mùa hè (DST) đến GMT. Mặc định là giờ, vì vậy bạn có thể bỏ qua nó.

Lưu ý rằng trường đầu tiên và thứ ba chỉ được sử dụng để hiển thị trong chuỗi ngày tháng. Bạn cũng có thể đặt nó thành FOO và BAR nếu bạn thích, đó là trường thứ hai (và tùy chọn thứ tư) thực hiện sửa đổi thời gian thực tế.

Tham số có thể mất nhiều trường hơn để xác định khi nào DST bắt đầu và kết thúc. Nếu bạn muốn đọc thêm về nó, hãy xem this page.

0

Đây là bản sao & được dán từ máy tính của tôi. Bắt đầu một dấu nhắc cmd.exe Windows - và sau đó:

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

Sau đó chuyển sang một vỏ bash MSYS:

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

Thông báo thời gian đã thay đổi. Điều này cũng hoạt động bằng cách sử dụng Bảng điều khiển.

+0

OK, nó thay đổi thời gian, nhưng vẫn còn trong múi giờ khác. Vì vậy, khi tôi thay đổi nó để 0:26 trong cmd tôi nhận được 20:26 trong MSYS. Khi tôi thay đổi thời gian để 0:26 trong MSYS tôi nhận được 4:26 trong cửa sổ. Vì vậy, tôi cần một phương pháp thay đổi múi giờ từ bảng điều khiển MSYS. – d9k

+0

@ d9K Vì vậy, bạn muốn có một dấu nhắc MSYS bash và Windows được trong múi giờ khác nhau? Tôi không nghĩ điều đó là có thể. MSYS không phải là một hệ điều hành và không có khái niệm về thời gian, ngày tháng hoặc múi giờ của riêng nó. –

+0

@anon: ngày và thời gian là của hệ thống, nhưng MSYS có thể quyết định múi giờ và thậm chí bạn có thể có một số cửa sổ MSYS ở các múi giờ khác nhau. –

0

Tôi đã gặp sự cố cùng một múi giờ. Cách tốt nhất của tôi là sử dụng: date --date = "4 giờ trước", trong đó -4h là múi giờ của tôi ... Nó làm việc cho tôi để đóng dấu thời gian công cụ của tôi nhưng tôi không chắc nó sẽ giúp ích gì cho "make" ...

0

Đối với hồ sơ, ngoài câu trả lời lớn từ Geert, đây là những gì tôi thêm vào của tôi ~/.bash_profile, sống ở Pháp:

export TZ=CET-1CEST-2 

Và nó hoạt động tuyệt vời.