649

time.time()Python time モジュールでは、システムの時刻または UTC の時刻が返されますか?

4

9 に答える 9

867

この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人間が読める文字列にしました。

于 2012-12-15T09:33:42.543 に答える
334

これは、テキスト ファイルで使用できるテキスト形式のタイムスタンプ用です。(以前は質問のタイトルが異なっていたため、この回答の紹介を変更して、時間としてどのように解釈できるかを明確にしました。[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
于 2012-12-15T10:24:06.267 に答える
1

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'))
于 2021-02-19T06:35:06.217 に答える