Estou a usar:
str(datetime.datetime.today()).split()[0]
para retornar a data de hoje no YYYY-MM-DD formato.
Existe uma maneira menos grosseira de conseguir isso?
Estou a usar:
str(datetime.datetime.today()).split()[0]
para retornar a data de hoje no YYYY-MM-DD formato.
Existe uma maneira menos grosseira de conseguir isso?
Respostas:
Você pode usar o strftime :
from datetime import datetime
datetime.today().strftime('%Y-%m-%d')
Além disso, para quem também procura uma hora, um minuto e um segundo preenchidos com zero no final: (Comentado por Gabriel Staples )
datetime.today().strftime('%Y-%m-%d-%H:%M:%S')
datetime.datetime.today().strftime('%Y-%m-%d-%H:%M:%S')
time.strftime("%Y-%m-%d")?
datetime.utcnow().strftime('%Y-%m-%d')
datetem este disponível, bem comodatetime
Você pode usar datetime.date.today()e converter o datetime.dateobjeto resultante em uma sequência:
from datetime import date
today = str(date.today())
print(today) # '2017-12-26'
/?
date.today().strftime('%Y/%m/%d')
.como 'DMY', o separador /para M/D/Ye o separador -para Y-M-D. Embora nem todos sigam essas diretrizes, ajudaria a ler datas internacionalmente, desde que nem todos tenham mudado Y-M-D.
Datetime é simplesmente adorável se você gosta de lembrar códigos engraçados. Você não prefere a simplicidade?
>>> import arrow
>>> arrow.now().format('YYYY-MM-DD')
'2017-02-17'
Este módulo é inteligente o suficiente para entender o que você quer dizer .
Apenas faça pip install arrow.
Adendo: em resposta àqueles que se exercitam sobre essa resposta, digamos que a flecha representa uma das alternativas abordagens para lidar com datas em Python. Isso é principalmente o que eu queria sugerir.
print(date.today())>> "2018-12-16" ?? lol e obtenha facilmente os valores int t.year,t.month,t.day+1>> (2018, 12, 17) onde t = date.today()e o fato de as pessoas não precisarem chamar a seta verde para saber a hora. oh Deus isso é muito código para lembrar ...
import datetimediferença import arrow? Claro que um está incorporado, mas se arrowfornece um formato mais conveniente, por que não usá-lo?
arrow? Mas, para muitos projetos simples, é apenas desnecessário. Além disso, em muitos projetos internos da empresa, as pessoas precisam obter aprovação para incluir novas bibliotecas.
Eu sempre uso a isoformat()função para isso.
from datetime import date
today = date.today().isoformat()
print(today) # '2018-12-05'
Observe que isso também funciona em objetos de data e hora se você precisar da hora no formato padrão também.
from datetime import datetime
now = datetime.today().isoformat()
print(now) # '2018-12-05T11:15:55.126382'
Outras respostas sugerem o uso de python datetime.datetime, mas como @Bill Bell disse, existem outras bibliotecas que oferecem datetimeinterfaces mais simples como um serviço ou como parte de um ecossistema maior de APIs. Aqui estão duas dessas bibliotecas que datetimessimplificam o trabalho.
Você pode usar pd.to_datetimena biblioteca de pandas . Aqui estão várias opções, dependendo do que você deseja devolver.
import pandas as pd
pd.to_datetime('today') # pd.to_datetime('now')
# Timestamp('2019-03-27 00:00:10.958567')
Como um objeto de data e hora python ,
pd.to_datetime('today').to_pydatetime()
# datetime.datetime(2019, 4, 18, 3, 50, 42, 587629)
Como uma sequência de datas formatada,
pd.to_datetime('today').isoformat()
# '2019-04-18T04:03:32.493337'
# Or, `strftime` for custom formats.
pd.to_datetime('today').strftime('%Y-%m-%d')
# '2019-03-27'
Para obter apenas a data do registro de data e hora, ligue Timestamp.date.
pd.to_datetime('today').date()
# datetime.date(2019, 3, 27)
Além disso to_datetime, você pode instanciar diretamente um Timestampobjeto usando,
pd.Timestamp('today') # pd.Timestamp('now')
# Timestamp('2019-04-18 03:43:33.233093')
pd.Timestamp('today').to_pydatetime()
# datetime.datetime(2019, 4, 18, 3, 53, 46, 220068)
Se você deseja conscientizar o fuso horário do carimbo de data e hora, passe um fuso horário para o tzargumento.
pd.Timestamp('now', tz='America/Los_Angeles')
# Timestamp('2019-04-18 03:59:02.647819-0700', tz='America/Los_Angeles')
Se você estiver trabalhando com pêndulo , existem algumas opções interessantes. Você pode obter o carimbo de data / hora atual usando now()ou a data de hoje usando today().
import pendulum
pendulum.now()
# DateTime(2019, 3, 27, 0, 2, 41, 452264, tzinfo=Timezone('America/Los_Angeles'))
pendulum.today()
# DateTime(2019, 3, 27, 0, 0, 0, tzinfo=Timezone('America/Los_Angeles'))
Além disso, você também pode obter a data tomorrow()ou yesterday()a data diretamente, sem ter que fazer nenhuma aritmética adicional de timedelta.
pendulum.yesterday()
# DateTime(2019, 3, 26, 0, 0, 0, tzinfo=Timezone('America/Los_Angeles'))
pendulum.tomorrow()
# DateTime(2019, 3, 28, 0, 0, 0, tzinfo=Timezone('America/Los_Angeles'))
Existem várias opções de formatação disponíveis.
pendulum.now().to_date_string()
# '2019-03-27'
pendulum.now().to_formatted_date_string()
# 'Mar 27, 2019'
pendulum.now().to_day_datetime_string()
# 'Wed, Mar 27, 2019 12:04 AM'
Resposta muito tardia, mas você pode usar:
import time
today = time.strftime("%Y-%m-%d")
# 2020-02-14
Você pode usar,
>>> from datetime import date
>>> date.today().__str__()
'2019-10-05'
str(date.today())ainda é melhor
Eu prefiro isso, porque isso é simples, mas talvez de alguma forma ineficiente e com erros. Você deve verificar o código de saída do comando shell se desejar um programa fortemente à prova de erros.
os.system('date +%Y-%m-%d')