22

PythonからUTCでファイルの変更日を取得したい。次のコードは、Linuxで構成されたタイムゾーン(GMT-5)の日付を返します。UTCで欲しいです。または、OSで構成されたタイムゾーンを取得してpytzで変換するにはどうすればよいですか?

$ 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)

ありがとう

4

2 に答える 2

36

datetime.datetime.utcfromtimestampを試してください

import datetime
import os
dt=os.path.getmtime('/home/me/.bashrc')
print (datetime.datetime.fromtimestamp(dt))
print (datetime.datetime.utcfromtimestamp(dt))
于 2012-07-10T00:28:19.080 に答える
1

「America/New_York」の代わりにローカルタイムゾーンを使用すると、次の方法でうまくいくはずです。

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>)
于 2012-07-10T00:33:11.733 に答える