時間列のある行を出力するプログラム(sarコマンドラインユーティリティ)があります。02:31:33 PM
このファイルをPythonスクリプトで解析し、sarをエポックなどに変換したいと思います1377181906
(上記の文字列からの時間、分、秒を含む現在の年、月、日)。これをより簡単な方法で行うにはどうすればよいでしょうか? 私は自分でこれをやろうとしましたが、時間/日時とその方法の群れに固執しました。
3885 次
2 に答える
9
これを行う1つの方法は次のとおりです。
- を使用して文字列を日時に読み取ります
strptime
- datetime オブジェクトの年、月、日を現在の日付の年、月、日に設定します。
replace
- 日時をUNIXタイムスタンプに変換する
calendar.timegm
>>> from datetime import datetime
>>> import calendar
>>> dt = datetime.strptime("02:31:33 PM", "%I:%M:%S %p")
>>> dt_now = datetime.now()
>>> dt = dt.replace(year=dt_now.year, month=dt_now.month, day=dt_now.day)
>>> calendar.timegm(dt.utctimetuple())
1377138693
Python >= 3.3 では、 dt.timestamp()を呼び出すことで日時からタイムスタンプを取得できることに注意してください。
以下も参照してください。
于 2013-08-22T14:45:45.787 に答える
4
エポック時間を取得する別の方法は、time モジュールからmktimeを使用し、日付の時間タプルを渡すことです。これを行うことができます。
>>> from datetime import datetime
>>> from time import mktime
>>> dt = datetime.strptime("02:31:33 PM", "%H:%M:%S %p")
>>> dt_now = datetime.now()
>>> dt = dt.replace(year=dt_now.year, month=dt_now.month, day=dt_now.day)
>>> int(mktime(dt.timetuple()))
1377131493
于 2013-08-22T15:17:06.353 に答える