@ user3778327: la todayvariable ya tiene el año y el mes actuales.
jfs
18
Para esta solución, asegúrese de usar en from datetime import datetimelugar de simplementeimport datetime
jpobst
@jpobst Estoy usando Python 3.8.1 & datetime-4.3 zope.interface-4.7.1, y el código anterior (con import datetime ) me funciona. Si escribo desde datetime import datetime , me arroja AttributeError: type object 'datetime.datetime' no tiene atributo 'datetime'
¡Funciona, gracias! ¿Hay una ventaja sobre .now()en lugar de .today()como se utiliza en otras respuestas? La now()función es más corta, se usa más comúnmente ... pero ¿hay alguna razón para usar una sobre la otra cuando todo lo que uno quiere saber es en qué año es?
Luc
1
@hashlash ¡Gracias! Para guardar a otros un clic: no, en realidad no
Luc
¿ from datetimeQué hace y por qué lo necesita?
Cadoiz
1
@Cadoiz: el paquete datetime tiene algunos submódulos: el datesubmódulo ( from datetime import date) que solo se ocupa de las fechas, el timesubmódulo que se ocupa de los tiempos y el datetimesubmódulo con nombre lamentable que hace ambas cosas. También hay timedeltay tzinfoallí. Uno podría simplemente import datetimeobtener el paquete completo con todos los submódulos, pero luego las llamadas a métodos se verían como datetime.datetime.now()o datetime.date.today(). Por lo general, es mejor importar solo los componentes que necesita por varias razones.
dannysauer
68
Utilizar:
from datetime import datetime
current_month = datetime.now().strftime('%m') // 02 //This is0 padded
current_month_text = datetime.now().strftime('%h') // Feb
current_month_text = datetime.now().strftime('%B') // February
current_day = datetime.now().strftime('%d') // 23 //This is also padded
current_day_text = datetime.now().strftime('%a') // Fri
current_day_full_text = datetime.now().strftime('%A') // Friday
current_weekday_day_of_today = datetime.now().strftime('%w') //5 Where 0is Sunday and6is Saturday.
current_year_full = datetime.now().strftime('%Y') // 2018
current_year_short = datetime.now().strftime('%y') // 18 without century
current_second= datetime.now().strftime('%S') //53
current_minute = datetime.now().strftime('%M') //38
current_hour = datetime.now().strftime('%H') //16 like 4pm
current_hour = datetime.now().strftime('%I') // 04 pm
current_hour_am_pm = datetime.now().strftime('%p') // 4 pm
current_microseconds = datetime.now().strftime('%f') // 623596 Rarely we need.
current_timzone = datetime.now().strftime('%Z') // UTC, EST, CST etc. (empty string if the object is naive).
Esto le dará el mes y año actual en formato de número entero. Si desea que sean cadenas, simplemente debe eliminar la precedencia "int" al asignar valores a las variables curr_yeary curr_month.
date.today().strftime("%Y-%m")
?Respuestas:
Utilizar:
from datetime import datetime today = datetime.today() datem = datetime(today.year, today.month, 1)
Supongo que quieres el primero del mes.
fuente
today
variable ya tiene el año y el mes actuales.from datetime import datetime
lugar de simplementeimport datetime
Prueba esta solución:
from datetime import datetime currentSecond= datetime.now().second currentMinute = datetime.now().minute currentHour = datetime.now().hour currentDay = datetime.now().day currentMonth = datetime.now().month currentYear = datetime.now().year
fuente
.now()
en lugar de.today()
como se utiliza en otras respuestas? Lanow()
función es más corta, se usa más comúnmente ... pero ¿hay alguna razón para usar una sobre la otra cuando todo lo que uno quiere saber es en qué año es?from datetime
Qué hace y por qué lo necesita?date
submódulo (from datetime import date
) que solo se ocupa de las fechas, eltime
submódulo que se ocupa de los tiempos y eldatetime
submódulo con nombre lamentable que hace ambas cosas. También haytimedelta
ytzinfo
allí. Uno podría simplementeimport datetime
obtener el paquete completo con todos los submódulos, pero luego las llamadas a métodos se verían comodatetime.datetime.now()
odatetime.date.today()
. Por lo general, es mejor importar solo los componentes que necesita por varias razones.Utilizar:
from datetime import datetime current_month = datetime.now().strftime('%m') // 02 //This is 0 padded current_month_text = datetime.now().strftime('%h') // Feb current_month_text = datetime.now().strftime('%B') // February current_day = datetime.now().strftime('%d') // 23 //This is also padded current_day_text = datetime.now().strftime('%a') // Fri current_day_full_text = datetime.now().strftime('%A') // Friday current_weekday_day_of_today = datetime.now().strftime('%w') //5 Where 0 is Sunday and 6 is Saturday. current_year_full = datetime.now().strftime('%Y') // 2018 current_year_short = datetime.now().strftime('%y') // 18 without century current_second= datetime.now().strftime('%S') //53 current_minute = datetime.now().strftime('%M') //38 current_hour = datetime.now().strftime('%H') //16 like 4pm current_hour = datetime.now().strftime('%I') // 04 pm current_hour_am_pm = datetime.now().strftime('%p') // 4 pm current_microseconds = datetime.now().strftime('%f') // 623596 Rarely we need. current_timzone = datetime.now().strftime('%Z') // UTC, EST, CST etc. (empty string if the object is naive).
Referencia: 8.1.7. Comportamiento strftime () y strptime ()
Referencia: comportamiento de strftime () y strptime ()
Las cosas anteriores son útiles para cualquier análisis de fecha, no solo ahora o hoy. Puede ser útil para cualquier análisis de fecha.
e.g. my_date = "23-02-2018 00:00:00" datetime.strptime(str(my_date),'%d-%m-%Y %H:%M:%S').strftime('%Y-%m-%d %H:%M:%S+00:00') datetime.strptime(str(my_date),'%d-%m-%Y %H:%M:%S').strftime('%m')
Y así...
fuente
Puede escribir la respuesta aceptada como una sola línea usando
date.replace
:datem = datetime.today().replace(day=1)
fuente
Siempre puede utilizar un método de subcadena:
import datetime; today = str(datetime.date.today()); curr_year = int(today[:4]); curr_month = int(today[5:7]);
Esto le dará el mes y año actual en formato de número entero. Si desea que sean cadenas, simplemente debe eliminar la precedencia "int" al asignar valores a las variables
curr_year
ycurr_month
.fuente
datetime.datetime.now().month
es mejor.Respuesta tardía, pero también puedes usar:
import time ym = time.strftime("%Y-%m")
fuente
>>> from datetime import date >>> date.today().month 2 >>> date.today().year 2020 >>> date.today().day 13
fuente