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.


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())

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]

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

6

Para python 3

import datetime
now = datetime.datetime.now()
print(now.year, now.month, now.day, now.hour, now.minute, now.second)

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


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]

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


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.


-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

7
Isso não responde à pergunta.
Colin 'Hart
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.