ingresar formato fechas fecha entre diferencia python datetime

formato - Convertir el objeto datetime en una cadena de fecha solo en Python



formato fecha python (8)

Es posible convertir un objeto datetime en una cadena trabajando directamente con los componentes del objeto datetime.

from datetime import date myDate = date.today() #print(myDate) would output 2017-05-23 because that is today #reassign the myDate variable to myDate = myDate.month #then you could print(myDate.month) and you would get 5 as an integer dateStr = str(myDate.month)+ "/" + str(myDate.day) + "/" + str(myDate.year) # myDate.month is equal to 5 as an integer, i use str() to change it to a # string I add(+)the "/" so now I have "5/" then myDate.day is 23 as # an integer i change it to a string with str() and it is added to the "5/" # to get "5/23" and then I add another "/" now we have "5/23/" next is the # year which is 2017 as an integer, I use the function str() to change it to # a string and add it to the rest of the string. Now we have "5/23/2017" as # a string. The final line prints the string. print(dateStr)

Salida -> 5/23/2017

Veo mucho al convertir una cadena de datetime y datetime en un objeto de datetime y datetime en Python, pero quiero ir a la inversa.
Tengo datetime.datetime(2012, 2, 23, 0, 0) y me gustaría convertirlo en una cadena como ''2/23/2012'' .


La concatenación de cadenas, str.join , se puede usar para construir la cadena.

d = datetime.now() ''/''.join(str(x) for x in (d.month, d.day, d.year)) ''3/7/2016''


Otra opción:

import datetime now=datetime.datetime.now() now.isoformat() # ouptut --> ''2016-03-09T08:18:20.860968''


Podrías usar métodos de formato de cadena simples:

>>> dt = datetime.datetime(2012, 2, 23, 0, 0) >>> ''{0.month}/{0.day}/{0.year}''.format(dt) ''2/23/2012'' >>> ''%s/%s/%s'' % (dt.month, dt.day, dt.year) ''2/23/2012''


Puede convertir datetime a cadena. published_at="{}".format(self.published_at)


Puedes usar strftime para ayudarte a formatear tu fecha.

P.ej,

import datetime t = datetime.datetime(2012, 2, 23, 0, 0) t.strftime(''%m/%d/%Y'')

rendirá:

''02/23/2012''

Más información sobre el formato ver here


type-specific formatting se puede utilizar:

t = datetime.datetime(2012, 2, 23, 0, 0) "{:%m/%d/%Y}".format(t)

Salida:

''02/23/2012''


date objetos de date y date y datetime (y la time también) admiten un mini-idioma para especificar la salida , y hay dos formas de acceder a él:

  • método directo de llamada: dt.strftime(''format here'') ; y
  • nuevo método de formato: ''{:format here}''.format(dt)

Entonces tu ejemplo podría verse como:

dt.strftime(''%m/%d/%Y'')

o

''{:%m/%d/%Y}''.format(dt)

Para completar el tema: también puede acceder directamente a los atributos del objeto, pero solo obtiene los números:

''%s/%s/%s'' % (dt.month, dt.day, dt.year)

El tiempo que lleva aprender el mini-idioma lo vale.

Para referencia, aquí están los códigos utilizados en el mini-idioma:

  • %a Weekday como nombre abreviado del local.
  • %A Weekday como nombre completo del local.
  • %w Weekday como número decimal, donde 0 es domingo y 6 es sábado.
  • %d Día del mes como un número decimal con cero rellenos.
  • %b Mes como nombre abreviado del local.
  • %B mes como nombre completo del local.
  • %m Mes como un número decimal con cero rellenos. 01, ..., 12
  • %y Año sin siglo como un número decimal con cero rellenos. 00, ..., 99
  • %Y Año con siglo como número decimal. 1970, 1988, 2001, 2013
  • %H Hour (reloj de 24 horas) como un número decimal sin relleno. 00, ..., 23
  • %I Hour (reloj de 12 horas) como un número decimal sin relleno. 01, ..., 12
  • El equivalente de %p Locale de AM o PM.
  • %M Minuto como un número decimal rellenado con cero. 00, ..., 59
  • %S Segundo como un número decimal rellenado con cero. 00, ..., 59
  • %f Microsegundo como un número decimal, rellenado con cero a la izquierda. 000000, ..., 999999
  • %z UTC offset en la forma + HHMM o -HHMM (vacío si no se usa), +0000, -0400, +1030
  • %Z Nombre de la zona horaria (vacío si es ingenuo), UTC, EST, CST
  • %j Día del año como un número decimal con cero rellenos. 001, ..., 366
  • %U Número de semana del año (el domingo es el primero) como un número decimal con cero rellenado.
  • %W Número de la semana del año (el lunes es el primero) como un número decimal.
  • %c Representación apropiada de la fecha y hora del local.
  • %x representación apropiada de la fecha del local.
  • Representación apropiada del tiempo de %X Locale.
  • %% Un carácter literal ''%''.