time.time()
Python time モジュールでは、システムの時刻または UTC の時刻が返されますか?
9 に答える
このtime.time()
関数は、エポックからの秒数を秒単位で返します。「エポック」は、UTC で 1970 年 1 月 1 日の開始として定義されることに注意してください。そのため、エポックは UTC で定義され、グローバルな瞬間を確立します。あなたがどこにいても、「エポックから数秒」 (time.time()) は同じ瞬間に同じ値を返します。
これは、コンピューターで実行したサンプル出力で、文字列にも変換しています。
Python 2.7.3 (default, Apr 24 2012, 00:00:54)
[GCC 4.7.0 20120414 (prerelease)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import time
>>> ts = time.time()
>>> print ts
1355563265.81
>>> import datetime
>>> st = datetime.datetime.fromtimestamp(ts).strftime('%Y-%m-%d %H:%M:%S')
>>> print st
2012-12-15 01:21:05
>>>
変数はts
秒単位で返される時間です。次に、ライブラリを使用して文字列に変換し、datetime
人間が読める文字列にしました。
これは、テキスト ファイルで使用できるテキスト形式のタイムスタンプ用です。(以前は質問のタイトルが異なっていたため、この回答の紹介を変更して、時間としてどのように解釈できるかを明確にしました。[2016-01-14 更新])
.now()
のまたは.utcnow()
を使用して、タイムスタンプを文字列として取得できますdatetime.datetime
。
>>> import datetime
>>> print datetime.datetime.utcnow()
2012-12-15 10:14:51.898000
は予想now
とは異なりますutcnow
-- それ以外は同じように機能します。
>>> print datetime.datetime.now()
2012-12-15 11:15:09.205000
タイムスタンプを文字列に明示的にレンダリングできます。
>>> str(datetime.datetime.now())
'2012-12-15 11:15:24.984000'
または、タイムスタンプを好きなようにフォーマットするために、さらに明示的にすることもできます。
>>> datetime.datetime.now().strftime("%A, %d. %B %Y %I:%M%p")
'Saturday, 15. December 2012 11:19AM'
ISO 形式が必要な場合.isoformat()
は、オブジェクトのメソッドを使用します。
>>> datetime.datetime.now().isoformat()
'2013-11-18T08:18:31.809000'
これらを変数で使用して、変換せずに計算と印刷を行うことができます。
>>> ts = datetime.datetime.now()
>>> tf = datetime.datetime.now()
>>> te = tf - ts
>>> print ts
2015-04-21 12:02:19.209915
>>> print tf
2015-04-21 12:02:30.449895
>>> print te
0:00:11.239980
time.time()
UNIX タイムスタンプを返します。ライブラリを使用datetime
して、現地時間または UTC 時間を取得できます。
import datetime
local_time = datetime.datetime.now()
print(local_time.strftime('%Y%m%d %H%M%S'))
utc_time = datetime.datetime.utcnow()
print(utc_time.strftime('%Y%m%d %H%M%S'))