2015-09-11 3 views
0

новичок в Python, позволяет сказать, что у меня естьПолучить второе без использования time.second

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

как я могу получить только второй без использования

t.second 

ни

int(t[-2:]) 
+1

Что 'должен t.second' быть? 't' - это строка ... нет атрибута' second'. А что с этим ограничением? – mhawke

ответ

1

One путь с раздельным:

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

Другой с простым регулярным выражением:

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

Используя стрелки это можно сделать так:

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 

И точно так же с помощью 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 

или больше просто (если разрешено):

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

Или ваш старый друг регулярные выражения:

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)) 
Смежные вопросы