Tôi muốn lấy múi giờ mặc định (PST) của hệ thống của tôi từ Python. Cách tốt nhất để làm điều đó là gì? Tôi muốn tránh một quá trình khác.Nhận thông tin múi giờ của hệ thống bằng Python?
Trả lời
Xem mô-đun Python Time.
from time import gmtime, strftime
print strftime("%z", gmtime())
chuẩn Thái Bình Dương Thời gian
Nên hoạt động:
import time
time.tzname
nó trả về một tuple của hai chuỗi: đầu tiên là tên của các địa phương múi giờ phi DST, thứ hai là tên của múi giờ DST địa phương.
Để thực hiện điều này thêm nữa, bạn có thể sử dụng 'time.tzname [time.daylight]' để lấy tên của múi giờ hiện tại, chiếm thời gian tiết kiệm ánh sáng ban ngày. –
Một lần nữa, 'time.daylight' không chỉ ra rằng DST đang hoạt động. Nó chỉ cho biết DST có được theo múi giờ hay không. Bạn đang tìm 'time.localtime(). Tm_isdst'. – marr75
Chỉ cần thêm cho người dùng Windows, các giá trị cho múi giờ đã được xác định trong 'HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Múi giờ \' – swdev
Nếu bạn thích UTC offsets qua chuỗi:
time.timezone/-(60*60)
Điều này sẽ tính toán sai khi (/ nếu) DST có hiệu lực. – marr75
Cung cấp cho một UTC bù đắp như trong câu trả lời ThomasH, nhưng mất tiền tiết kiệm ánh sáng ban ngày vào tài khoản.
>>> import time
>>> offset = time.timezone if (time.localtime().tm_isdst == 0) else time.altzone
>>> offset/60/60 * -1
-9
Giá trị của time.timezone
hoặc time.altzone
là trong vài giây Tây UTC (với các khu vực phía Đông của UTC nhận được một giá trị âm). Điều này trái ngược với cách chúng tôi thực sự thích nó, vì thế * -1.
time.localtime().tm_isdst
sẽ bằng không nếu tiết kiệm ánh sáng ban ngày hiện không có hiệu lực (mặc dù điều này có thể không đúng nếu gần đây đã thay đổi luật tiết kiệm ánh sáng ban ngày).
CHỈNH SỬA: marr75 là chính xác, tôi đã chỉnh sửa câu trả lời cho phù hợp.
Để an toàn, tôi nghĩ rằng việc kiểm tra bù đắp nên được đảo ngược (altzone nếu dst = 1 else timezone). Nếu tình trạng DST bằng cách nào đó không rõ, 'tm_isdst' sẽ là' -1', và mã hiện tại sẽ mặc định là 'altzone' trong trường hợp này. Đối với các vùng không sử dụng DST, giá trị này không bao giờ chính xác, do đó, 'múi giờ' có thể là dự phòng. (Tôi không chắc chắn nếu '-1' thực sự là có thể xuất ra từ' localtime' mặc dù) – nmclean
[tất cả các vùng, giải pháp dựa trên múi giờ có thể thất bại trong một số trường hợp cạnh] (http://bugs.python.org/issue1647654) – jfs
Đoạn mã để tính toán bù trừ không đúng, xem http://bugs.python.org/issue7229.
Các cách chính xác để xử lý này là:
def local_time_offset(t=None):
"""Return offset of local zone from GMT, either at present or at time t."""
# python2.3 localtime() can't take None
if t is None:
t = time.time()
if time.localtime(t).tm_isdst and time.daylight:
return -time.altzone
else:
return -time.timezone
Đây là trong tất cả các khả năng, không phải là câu hỏi chính xác mà OP hỏi, nhưng có hai đoạn không chính xác trên trang và thời gian lỗi bú theo dõi và sửa chữa.
1. nếu bạn biết 'tm_isdst'; bạn không cần phải kiểm tra 'daylight' 2. [tất cả' altzone', 'giải pháp dựa trên timezone' có thể thất bại trong một số trường hợp cạnh] (http://bugs.python.org/issue1647654) – jfs
- 1. Đặt múi giờ của hệ thống từ .NET
- 2. Múi giờ bằng Python
- 3. Django với cài đặt múi giờ hệ thống so với múi giờ cá nhân của người dùng
- 4. API Google auth2 có thiếu thông tin múi giờ không?
- 5. Làm cách nào để lấy thông tin hệ thống bằng Python?
- 6. Nhận múi giờ từ DateTime
- 7. Cấu hình PHP: Không an toàn để dựa vào cài đặt múi giờ của hệ thống
- 8. Java không tạo ra thông tin múi giờ chính xác
- 9. Chuyển đổi múi giờ của Python
- 10. Làm cách nào để kết hợp ngày và giờ nhận biết múi giờ bằng Python?
- 11. Python strptime() và múi giờ?
- 12. Lấy đúng múi giờ bù đắp bằng Python sử dụng múi giờ địa phương
- 13. Mô-đun Python để thay đổi ngày giờ hệ thống
- 14. Làm cách nào để có được tên múi giờ có thể đọc được bằng Python?
- 15. Python: strftime, gmtime không tôn trọng múi giờ
- 16. Cách nhận múi giờ địa phương bằng PHP?
- 17. Chuyển đổi chuỗi ngày nhận biết múi giờ thành UTC và quay lại bằng Python
- 18. Python tạo hệ thống
- 19. Nhận ngày giờ cho múi giờ khác Bất kể múi giờ địa phương
- 20. Thu thập thông tin hệ thống và môi trường
- 21. Khay hệ thống Ubuntu bằng Python
- 22. Cách nhận múi giờ từ các thuộc tính trong CultureInfo
- 23. Có kho lưu trữ trung tâm cho thông tin múi giờ
- 24. Nhận thông tin máy tính (hệ thống) trên cửa sổ máy - C# script
- 25. Múi giờ biến mất trong đầu ra trong thời gian hệ thống R
- 26. Thời gian Joda - Nhận tên múi giờ?
- 27. thư viện thông tin hệ thống/xử lý di động
- 28. Nhận múi giờ địa phương của thiết bị
- 29. Python - datetime của một múi giờ cụ thể
- 30. `[ngoại lệ] DateTime :: __ construct():` Nó không phải là an toàn dựa trên các thiết lập của hệ thống múi giờ
chúng tôi đang xem các tài liệu khác nhau hay là ''% Z''? – SilentGhost
@ SilentGhost: "% z" và '% z' giống hệt nhau trong Python. – ahawker
có, nhưng ** chữ hoa ** z Z' và ** chữ thường ** 'z' thì không. – SilentGhost