2015-09-11 2 views
0

nouveau à python, permet de dire que j'aiObtenir seconde sans utiliser time.second

t = "2008-12-12 19:21:10" 

comment puis-je obtenir la deuxième sans utiliser

t.second 

ni

int(t[-2:]) 
+1

Qu'est-ce 't.second' censés être? 't' est une chaîne ... il n'y a pas d'attribut' second'. Et ce qui est avec la restriction? – mhawke

Répondre

1

One façon est avec split:

t = "2008-12-12 19:21:10" 
seconds = int(t.split(':')[-1]) 
print(seconds) # prints 10 

autre avec un simple regex:

import re 
t = "2008-12-12 19:21:10" 
seconds = int(re.search(r'(\d+)\Z',t).group(1)) 
print(seconds) # prints 10 

En utilisant la flèche, il peut être fait comme ceci:

import arrow 
t = "2008-12-12 19:21:10" 
seconds = int(arrow.get(t, 'YYYY-MM-DD HH:mm:ss').format('ss')) 
print(seconds) # prints 10 

Et même en utilisant datetime.strptime.strftime:

t = "2008-12-12 19:21:10" 
seconds = int(datetime.strptime(t, '%Y-%m-%d %H:%M:%S').strftime('%S')) 
print(seconds) # prints 10 

ou plus simplement (si autorisé):

seconds = datetime.strptime(t, '%Y-%m-%d %H:%M:%S').second 
print(seconds) # prints 10 
0

Ou votre vieil ami expressions régulières:

import re 
m = re.match("([0-9]{4})-([0-9]{2})-([0-9]{2}) ([0-9]{2}):([0-9]{2}):([0-9]{2})", t) 
seconds = int(m.group(6))