Gostaria de obter o tempo atual em Python e atribuí-los em variáveis como year
, month
, day
, hour
, minute
. Como isso pode ser feito no Python 2.7?
Gostaria de obter o tempo atual em Python e atribuí-los em variáveis como year
, month
, day
, hour
, minute
. Como isso pode ser feito no Python 2.7?
Respostas:
O datetime
módulo é seu amigo:
import datetime
now = datetime.datetime.now()
print now.year, now.month, now.day, now.hour, now.minute, now.second
# 2015 5 6 8 53 40
Você não precisa de variáveis separadas, os atributos no datetime
objeto retornado têm tudo o que você precisa.
import time \n now=time.localtime() \n print now.tm_year, now.tm_mon, now.tm_mday, now.tm_hour, now.tm_hour, now.tm_min, now.tm_sec, now.tm_wday, now.tm_yday, now.tm_isdst
Ao descompactar o timetuple
objeto datetime, você deve obter o que deseja:
from datetime import datetime
n = datetime.now()
t = n.timetuple()
y, m, d, h, min, sec, wd, yd, i = t
Para python 3
import datetime
now = datetime.datetime.now()
print(now.year, now.month, now.day, now.hour, now.minute, now.second)
Vamos ver como obter e imprimir dia, mês, ano em python a partir do momento atual:
import datetime
now = datetime.datetime.now()
year = '{:02d}'.format(now.year)
month = '{:02d}'.format(now.month)
day = '{:02d}'.format(now.day)
hour = '{:02d}'.format(now.hour)
minute = '{:02d}'.format(now.minute)
day_month_year = '{}-{}-{}'.format(year, month, day)
print('day_month_year: ' + day_month_year)
resultado:
day_month_year: 2019-03-26
Três bibliotecas para acessar e manipular datas e horas, como data e hora, seta e pêndulo, disponibilizam esses itens em nomes nomeados cujos elementos são acessíveis por nome ou índice. Além disso, os itens são acessíveis exatamente da mesma maneira. (Suponho que, se eu fosse mais inteligente, não ficaria surpreso.)
>>> YEARS, MONTHS, DAYS, HOURS, MINUTES = range(5)
>>> import datetime
>>> import arrow
>>> import pendulum
>>> [datetime.datetime.now().timetuple()[i] for i in [YEARS, MONTHS, DAYS, HOURS, MINUTES]]
[2017, 6, 16, 19, 15]
>>> [arrow.now().timetuple()[i] for i in [YEARS, MONTHS, DAYS, HOURS, MINUTES]]
[2017, 6, 16, 19, 15]
>>> [pendulum.now().timetuple()[i] for i in [YEARS, MONTHS, DAYS, HOURS, MINUTES]]
[2017, 6, 16, 19, 16]
Você pode usar o gmtime
from time import gmtime
detailed_time = gmtime()
#returns a struct_time object for current time
year = detailed_time.tm_year
month = detailed_time.tm_mon
day = detailed_time.tm_mday
hour = detailed_time.tm_hour
minute = detailed_time.tm_min
Nota: Um registro de data e hora pode ser passado para gmtime; o padrão é hora atual, retornada por hora ()
eg.
gmtime(1521174681)
Veja struct_time
Essa é uma pergunta mais antiga, mas eu encontrei uma solução que achei que outras pessoas poderiam gostar.
def get_current_datetime_as_dict():
n = datetime.now()
t = n.timetuple()
field_names = ["year",
"month",
"day",
"hour",
"min",
"sec",
"weekday",
"md",
"yd"]
return dict(zip(field_names, t))
O horário () pode ser compactado com outra matriz, o que cria tuplas rotuladas. Lance isso para um dicionário e o produto resultante poderá ser consumido get_current_datetime_as_dict()['year']
.
Isso tem um pouco mais de sobrecarga do que algumas das outras soluções aqui, mas achei muito bom poder acessar valores nomeados por causa de clartiy no código.
você pode usar o módulo datetime para obter a data e hora atuais no Python 2.7
import datetime
print datetime.datetime.now()
Resultado :
2015-05-06 14:44:14.369392