Je dois comparer deux chaînes de champs de temps représentées comme "[email protected]@EDT"
. Comment puis-je les comparer de manière optimale en python?
Je veux faire >=
taper comparsions sur des champs de type ssortingng.
val1 = "[email protected]@EDT" val2 = "[email protected]@EDT" if val1 > = val2:
import datetime t=datetime.datetime.strptime("[email protected]@EDT","%Y%m%d@%H%M%S.%f@%Z")
L’object datetime prend en charge la comparaison directe en utilisant> =.
standard python lib peut ne pas bien gérer les fuseaux horaires, vous aurez peut-être besoin d’un module tiers comme pytz
Utilisez le module datetime
pour cela.
Utilisez datetime.datetime.strptime
pour convertir les chaînes en dates, puis comparez-les en utilisant >=
.
import time from time import gmtime, strftime currentTime=strftime("%Y-%m-%d %H:%M:%S", gmtime()) print currentTime time.sleep(5) SecondTime=strftime("%Y-%m-%d %H:%M:%S", gmtime()) print SecondTime from dateutil.parser import parse parseSecondTime = parse(SecondTime) parseCurrentTime = parse(currentTime) diffOfTime = parseSecondTime - parseCurrentTime timeDifference=diffOfTime.total_seconds() print timeDifference if timeDifference>0: print 'SecondTime is greater' else: print 'Current Time is Greater'
Quelque chose comme ce qui suit devrait faire l’affaire.
import time val1 = "[email protected]@EDT" val2 = "[email protected]@EDT" a = time.strptime(val1, '%Y%m%d@%H%M%S.%f@%Z') b = time.strptime(val2, '%Y%m%d@%H%M%S.%f@%Z') if a >= b: