Como obter tempo atual em python e dividir em ano, mês, dia, hora, minuto?

Respostas:

551

O datetimemó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 datetimeobjeto retornado têm tudo o que você precisa.

tzaman
fonte
4
apenas uma fonte: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
Sean.H
31

Aqui está uma linha que vem logo abaixo da linha de 80 caracteres no máximo.

import time
year, month, day, hour, min = map(int, time.strftime("%Y %m %d %H %M").split())
rigsby
fonte
29

A datetimeresposta do tzaman é muito mais limpa, mas você pode fazer isso com o timemódulo python original :

import time
strings = time.strftime("%Y,%m,%d,%H,%M,%S")
t = strings.split(',')
numbers = [ int(x) for x in t ]
print numbers

Resultado:

[2016, 3, 11, 8, 29, 47]
vossman77
fonte
14

Ao descompactar o timetupleobjeto 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
skyline75489
fonte
6

Para python 3

import datetime
now = datetime.datetime.now()
print(now.year, now.month, now.day, now.hour, now.minute, now.second)
Tajdar Khan Afridi
fonte
6

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
Tomer Ben David
fonte
3
import time
year = time.strftime("%Y") # or "%y"
xiaoweiz
fonte
2

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]
Bill Bell
fonte
2

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

Sreeragh AR
fonte
1

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.

TopherGopher
fonte
-4

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
Haresh Shyara
fonte
7
Isso não responde à pergunta.
Colin 'Hart