2017-01-08 6 views
0

私はプログラミングとPythonの初心者です。私の無知を許してください。 私は、RHELマシンの 'crontab'リストからデータを取得し、特定のプロセスが必要な特定の日時(実行ユーザーの 'crontab'の時刻)で実行されているかどうかをチェックするスクリプトを作成しようとしています。タプル/文字列時間内に指定されたローカル/現在時刻を比較する方法

は、私は、プロセスの文字列内の実行日付と時刻を持っている - それは次のようである:

「金12月23日16時20分39秒2016」

私はかどうかを比較することができますどのようにこの時間は文字列(空白で構成され、列間の ":"で構成されています)がRHELマシン上の現地時間を超えていますか?

私はそれだけで時間(分、秒は関係ありません)を確認するために十分であることがわかってきたので、私は考えている:

from time import gmtime, strftime 
strftime("%H %d %m %Y", gmtime()) 

返す:

" 18 08 01 2017 '

つまり、単純なタプル/文字列をPythonが別の時間と比較するために使用できる時間に変換する方法はありますか?

ありがとうございました!

答えて

0

は、モジュールの日時及び機能のstrptimeを見てみましょう:

https://docs.python.org/2/library/datetime.html#strftime-strptime-behavior

はここで何をしたいんスクリプトの例です:

また
import datetime as dt 

def datestamp_after_current_time(datetime_str): 

    datetime_ = dt.datetime.strptime(datetime_str, "%a %b %d %H:%M:%S %Y") 

    return datetime_ > dt.datetime.now() 


datetime_str = 'Fri Dec 23 16:20:39 2016' 

datestamp_after_current_time(datetime_str) 

、あなたのタイムスタンプがUTCである場合最後の行でdatetime.now()の代わりにdatetime.utcnow()を使用します。

+0

Pythonは素晴らしいです!私は感謝しています、ありがとう、ダビデ!私はまた、本当にいい、感謝の関数が必要かもしれないいくつかの考えを入れていない! – Xtigyro

+0

うれしい私は助けになることができます!答えを受け入れてください、それは非常に感謝される; P。 –

+0

完了!ありがとうございました!私はMattDMoのソリューションも非常に良い仕事をしていると言いたいと思います。 – Xtigyro

0

あなたはこのためにstrptime()またはstrftime()を必要としない - あなただけのpython-dateutilが必要になります。

import datetime 
from dateutil.parser import parse 

datetime_str = "Fri Dec 23 16:20:39 2016" 
print(parse(datetime_str) < datetime.datetime.now()) 
# prints "True", meaning that datetime_str is in the past 
+0

ありがとう、それはまたとても良い解決策です、MattDMo! 私はちょうどこれらのシェルコマンドを実行する必要があります: 51 curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py" 52 python get-pip.py 53 pip -V 54 pipインストールpython-dateutil – Xtigyro

関連する問題