Nếu thời gian tuyệt đối là mối quan tâm chính của bạn, có lẽ tốt nhất là bạn nên sử dụng UTC vì nó tồn tại cho mục đích đó. Câu trả lời của Michael rất hữu ích khi bạn phải giải quyết vấn đề, nhưng thường thì nên tránh hoàn toàn ở nơi bạn có thể.
Khi hệ thống của bạn không được đặt thành UTC theo mặc định, cách đơn giản nhất để vượt qua múi giờ là bằng cách thêm tiền tố vào lệnh của bạn với TZ
biến môi trường. Điều này giới hạn chuyển đổi vùng thành một lệnh duy nhất và giữ cho biến không bị rò rỉ vào các lệnh tiếp theo của bạn.
$ NOW=$(date '+%s')
$ date -d @$NOW
Wed Jun 11 23:44:35 EDT 2014
$ TZ=UTC date -d @$NOW
Thu Jun 12 03:44:35 UTC 2014
Những gì bạn không nên làm là xuất TZ
biến vì điều này có thể khiến mọi thứ rất khó hiểu để khắc phục sự cố, như minh họa sau đây.
$ export TZ=UTC
$ date -d @$NOW
Thu Jun 12 03:44:35 UTC 2014
$ TZ=EDT date -d @$NOW
Thu Jun 12 03:44:35 EDT 2014
date
mặc dù ...