2014-07-18 7 views
0

Je travaille sur mon script python pour connaître l'heure actuelle.comment se débarrasser du zéro dans le temps

Quand j'ai l'heure actuelle entre 01:00PM et 09:00PM, le code supprimé le 0 il montrera 1:00PM et 9:00PM.

Lorsque mon heure montre entre 01:00AM et 09:00AM, il ne sera pas supprimer le 0.

Utilisé ce code:

# Set the date and time row 
current_time = time.time() # now (in seconds) 
half_hour = current_time + 60*30 # now + 30 minutes 
one_hour = current_time + 60*60 # now + 60 minutes 

for t in [current_time,half_hour,one_hour]: 
    if (0 <= datetime.datetime.now().minute <= 29): 
     self.getControl(4204).setLabel(time.strftime("%I").lstrip('0') + ':00' + 
time.strftime("%p")) 
     self.getControl(4205).setLabel(time.strftime("%I").lstrip('0') + ':30' + 
time.strftime("%p")) 
     self.getControl(4206).setLabel(time.strftime("%I" + ":00%p",time.localtime(t))) 
    else: 
     self.getControl(4204).setLabel(time.strftime("%I").lstrip('0') + ':30' + 
time.strftime("%p")) 
     self.getControl(4205).setLabel(time.strftime("%I" + ":00%p",time.localtime(t))) 
     self.getControl(4206).setLabel(time.strftime("%I" + ":30%p",time.localtime(t))) 

Je ne sais pas comment enlever le 0 pour AM.

Pouvez-vous s'il vous plaît me dire comment je pourrais supprimer le 0 pour le AM?

Répondre

0

Pourquoi n'êtes-vous pas lstrip ing pour chaque période de temps?

>>> "01:00AM".lstrip("0") 
'1:00AM' 
>>> "09:00PM".lstrip("0") 
'9:00PM' 

Cette ligne n'a pas lstrip:

self.getControl(4206).setLabel(time.strftime("%I" + ":00%p",time.localtime(t))) 

Comment l'ajouter:

self.getControl(4206).setLabel(time.strftime("%I" + ":00%p",time.localtime(t)).lstrip("0")) 
+0

Ah, la raison pour laquelle je le code 'self.getControl (4206) .setLabel (lstrip (time.strftime ("% I" +" : 00% p ", time.localtime (t))))' est parce que j'ajoute l'heure à une heure en avant. J'ai essayé d'ajouter le 'lstrip' mais j'obtiendrai une erreur à quelque chose comme ceci:' NameError: nom global 'lstrip' n'est pas défini 'quand j'utilise ce code:' self.getControl (4206) .setLabel (lstrip (time.strftime ("% I" + ": 00% p", heure.localtime (t)))) '. Savez-vous pourquoi j'ai eu une erreur? –

+0

Mis à jour ma réponse, erreur stupide. –

+0

Merci beaucoup pour cela, je peux le voir avoir fixé le délivré. Problème résolu! (Y) –

0

Vous n'avez pas besoin de faire de telles acrobaties compliquées:

>>> import datetime 
>>> t = datetime.datetime.now() 
>>> t.hour 
17 

.hour wil Je vous donne la valeur de 24 heures. Vérifiez simplement si c'est entre 13 et 21 et formatez votre chaîne en conséquence.

Pour obtenir la demi-heure et pleine heure:

>>> t 
datetime.datetime(2014, 7, 18, 17, 58, 35, 98698) 
>>> t + datetime.timedelta(minutes=30) 
datetime.datetime(2014, 7, 18, 18, 28, 35, 98698) 
>>> t + datetime.timedelta(hours=1) 
datetime.datetime(2014, 7, 18, 18, 58, 35, 98698) 
Questions connexes