2012-07-10 36 views
15

Tôi muốn nhận ngày sửa đổi tệp trong UTC từ Python. Đoạn mã sau trả về các ngày trong múi giờ cấu hình Linux của tôi (GMT-5). Tôi muốn nó ở UTC. Hoặc làm thế nào để tôi có được múi giờ cấu hình os để chuyển đổi nó với pytz?Cách lấy ngày sửa đổi tệp bằng UTC từ Python

$ python 
Python 2.6.5 (r265:79063, Apr 16 2010, 13:09:56) 
[GCC 4.4.3] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> from datetime import datetime 
>>> import os 
>>> dt=os.path.getmtime('/home/user/.bashrc') 
>>> datetime.datetime.fromtimestamp(dt) 
datetime(2012, 5, 30, 21, 18, 10) 

Cảm ơn

Trả lời

20

Hãy thử datetime.datetime.utcfromtimestamp

import datetime 
import os 
dt=os.path.getmtime('/home/me/.bashrc') 
print (datetime.datetime.fromtimestamp(dt)) 
print (datetime.datetime.utcfromtimestamp(dt)) 
1

Sử dụng múi giờ địa phương của bạn ở vị trí của "America/New_York" và sau đây nên làm các trick.

In [11]: import datetime, pytz 

In [12]: right_now = datetime.datetime.now() 

In [13]: right_now_utc = right_now.replace(tzinfo=pytz.timezone("America/New_York")).astimezone(pytz.utc) 

In [14]: right_now 
Out[14]: datetime.datetime(2012, 7, 9, 20, 31, 21, 999536) 

In [15]: right_now_utc 
Out[15]: datetime.datetime(2012, 7, 10, 1, 31, 21, 999536, tzinfo=<UTC>) 
Các vấn đề liên quan