python 現在時刻 - 現在のGMT時間をUnixのタイムスタンプ形式で取得する最も簡単な方法は何ですか?




ミリ秒 計算 (5)

import time

int(time.time()) 

出力:

1521462189

Pythonは、 timeを扱うためにhereに見られるように、異なるパッケージ( datetimetimecalendar )を提供します。 私は大きな間違いをして、次のように現在のGMT時刻を取得しtime.mktime(datetime.datetime.utcnow().timetuple())

Unixのタイムスタンプで現在のGMT時間を取得する簡単な方法は何ですか?


または単にdatetime標準モジュールを使用するだけです

In [2]: from datetime import timezone, datetime
   ...: int(datetime.now(tz=timezone.utc).timestamp() * 1000)
   ...: 
Out[2]: 1514901741720

必要な解像度に応じて切り捨てたり、倍数にすることができます


私はtime.time()を使用して、エポックから秒単位でタイムスタンプを取得します。

import time

time.time()

出力:

1369550494.884832

ほとんどのプラットフォームでの標準のCPython実装では、これはUTC値を返します。


私はこの方法が好きです:

import datetime, time

dts = datetime.datetime.utcnow()
epochtime = round(time.mktime(dts.timetuple()) + dts.microsecond/1e6)

ここに掲載されている他の方法は、すべてのプラットフォームでUTCを提供することが保証されていないか、秒単位でしか報告されません。 あなたが完全な解像度を望むなら、これはマイクロ秒にも作用します。


Pythonの防御に5ポイント

  1. シンプルさ :この行動は次のような意味で単純です。ほとんどの人はこのトラップに数回ではなく1回しか入りません。

  2. 一貫性 :Pythonは常に名前ではなくオブジェクトを渡します。 デフォルトのパラメータは、明らかに、関数見出しの一部です(関数本体ではありません)。 したがって、関数呼び出し時ではなく、モジュールのロード時(ネストされていない限り、モジュールのロード時のみ)に評価する必要があります。

  3. 有用性 :Frederik Lundhが"Pythonでのデフォルトパラメータ値"についての彼の説明で指摘しているように、現在の動作は高度なプログラミングにとって非常に役立ちます。 (控えめに使用してください)

  4. 十分な文書化 :最も基本的なPythonのドキュメント、チュートリアルでは、 関数の定義の詳細」の第1項のサブセクションで"重要な警告"として大きな問題が発表されています。 警告では太字が使用されていますが、見出しの外側に適用されることはほとんどありません。 RTFM:詳細なマニュアルを読んでください。

  5. メタラーニング :トラップへの落とし込みは、実際には(少なくともあなたが反射的な学習者であれば)非常に有用な瞬間です。上記の「一貫性」のポイントをよりよく理解することができ、Pythonについて多くのことを教えてくれるからです。







python