English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Módulo de manejo de fechas y horas en Python (date y datetime)

Prefacio

En el trabajo de desarrollo, a menudo necesitamos usar fechas y horas, como:

  • Como contenido de información de registro
  • Calcular el tiempo de ejecución de una función
  • Nombrar un archivo de registro con una fecha
  • Registrar o mostrar el tiempo de publicación o modificación de un artículo
  • Otras

Python proporciona varios módulos integrados para operar con fechas y horas: el módulo time, el módulo datetime y el módulo calendar. El módulo time se implementa mediante la llamada a la biblioteca C, por lo que algunos métodos pueden no estar disponibles en ciertas plataformas, pero la mayoría de las interfaces proporcionadas son básicamente consistentes con la biblioteca estándar time.h de C. En comparación con el módulo time, el módulo datetime proporciona interfaces más intuitivas, fáciles de usar y más potentes.

I. Explicación de términos relacionados

  • UTC time Coordinated Universal Time, tiempo universal coordinado, también conocido como tiempo astronómico de Greenwich, tiempo estándar mundial. El tiempo correspondiente al UTC time es el tiempo local de cada zona horaria, el tiempo de la zona oriental N es N horas más temprano que el tiempo UTC, por lo que el tiempo UTC + N horas es la hora local de la zona oriental N; mientras que la hora de la zona occidental N es N horas más tarde que el tiempo UTC, es decir, tiempo UTC - N horas es la hora local de la zona occidental N; China está en el este8zona, por lo que es anterior a la hora UTC8hora, que puede ser en UTC+8representar.
  • El tiempo de inicio del epoch es el punto de partida del tiempo; es un tiempo específico, y el valor de este punto de tiempo puede ser diferente en diferentes plataformas, para Unix, el tiempo de inicio del epoch es 1970-01-01 00:00:00 UTC.
  • El timestamp (timestamp) también se conoce como tiempo Unix o tiempo POSIX; es una forma de presentación del tiempo que indica desde la hora de Greenwich1970 años1Mes1El número de milisegundos transcurridos desde la medianoche del día 0 hasta el momento actual, que es de tipo float. Sin embargo, algunos métodos relacionados con ciertos lenguajes de programación devuelven segundos (Python es así), lo que debe revisarse en la documentación del método. Es necesario destacar que el timestamp es una diferencia y su valor no está relacionado con la zona horaria.

II. Formas de presentación del tiempo

Las formas comunes de presentación del tiempo son:

  • Timestamp
  • Cadena de tiempo formateada

En Python, también hay otras formas de representar el tiempo:

  • El objeto time.struct_time del módulo time
  • La clase datetime del módulo datetime

Sobre el módulo datetime, la clase datetime se explicará en detalle a continuación, aquí se menciona brevemente time.struct_time.

El objeto time.struct_time contiene las siguientes propiedades:

Subíndice/Índice Nombre del atributo Descripción
0 tm_year El año, como 2017
1 tm_mon El mes, el rango de valores es [1, 12]
2 tm_mday El día del mes, el rango de valores es [1-31]
3 tm_hour Horas, el rango de valores es [0-23]
4 tm_min Minutos, el rango de valores es [0, 59]
5 tm_sec Segundos, el rango de valores es [0, 61]
6 tm_wday El día de la semana en una semana, el rango de valores es [0-6], 0 representa lunes
7 tm_yday El día del año, el rango de valores es [1, 366]
8 tm_isdst Si es horario de verano, los valores posibles son: 0 , 1 o -1

Hay dos formas de obtener valores de propiedades:

  • Se puede considerar como una secuencia especialmente ordenada e inmutable a través de la/Índice para obtener el valor de cada elemento, como t[0]
  • También se puede obtener el valor de cada elemento mediante .property_name, como t.tm_year.

Es necesario aclarar que los atributos de la instancia struct_time son de solo lectura, no se pueden modificar.

Tercero, módulo time

El módulo time se utiliza principalmente para el acceso y la conversión de tiempo, este módulo proporciona varias funciones relacionadas con el tiempo.

1. Lista de funciones

Método/Atributo Descripción
time.altzone Devuelve la diferencia en segundos con el tiempo UTC, con unidades de segundo (en el oeste este valor es positivo, en el este este valor es negativo). Representa la compensación de la zona horaria DST local, solo se usa cuando daylight no es 0.
time.clock() Devuelve los segundos de tiempo de ejecución del procesador del proceso actual (sin incluir el tiempo de sleep), con valor en decimal; este método en Python3.3Se ha cambiado a time.process_time()
time.asctime([t]) Convierte un tiempo en forma de tupla o struct_time (se puede obtener mediante los métodos gmtime() y localtime()) en una24Una cadena de caracteres de tiempo de una caracter, con formato: "Fri Aug 19 11:14:16 2016Si no se proporciona el parámetro t, se toma el valor devuelto por localtime() como parámetro.
time.ctime([secs]) La función es la misma que la anterior, convierte un timestamp de segundos en una cadena de tiempo local. Si no se proporciona el parámetro secs o su valor es None, se toma el valor devuelto por el método time() como valor predeterminado. ctime(secs) es equivalente a asctime(localtime(secs))
time.time() 返回时间戳(自1970-1-1 0:00:00 至今所经历的秒数)
time.localtime([secs]) 返回以指定时间戳对应的本地时间的 struct_time对象(可以通过下标,也可以通过 .属性名 的方式来引用内部属性)格式
time.localtime(time.time()) + n*3600) 返回n个小时后本地时间的 struct_time对象格式(可以用来实现类似crontab的功能)
time.gmtime([secs]) 返回指定时间戳对应的utc时间的 struct_time对象格式(与当前本地时间差8个小时)
time.gmtime(time.time()) + n*3600) 返回n个小时后utc时间的 struct_time对象(可以通过 .属性名 的方式来引用内部属性)格式
time.strptime(time_str, time_format_str) 将时间字符串转换为struct_time时间对象,如:time.strptime('2017-01-13 17:07', '%Y-%m-%d %H:%M'
time.mktime(struct_time_instance) 将struct_time对象实例转换成时间戳
time.strftime(time_format_str, struct_time_instance) 将struct_time对象实例转换成字符串

2. 练习

获取时间戳格式的时间

>>> time.time()
1486188022.862

获取struct_time格式的时间

>>> time.localtime()
time.struct_time(tm_year=2017, tm_mon=2, tm_mday=4, tm_hour=14','%Y%m%d%H%M')2, tm_sec=34, tm_wday=5, tm_yday=35, tm_isdst=0)
>>> time.gmtime()
time.struct_time(tm_year=2017, tm_mon=2, tm_mday=4, tm_hour=6','%Y%m%d%H%M')2, tm_sec=56, tm_wday=5, tm_yday=35, tm_isdst=0)

获取字符串格式的时间

>>> time.ctime()
'Sat Feb 04 14:06:42 2017'
>>> time.asctime()
'Sat Feb 04 14:06:47 2017'

时间戳格式转struct_time格式时间

>>> t1 = time.time()
>>> print(t1)
1486188476.9
>>> t2 = time.localtime(t1)
>>> print(t2)
time.struct_time(tm_year=2017, tm_mon=2, tm_mday=4, tm_hour=14','%Y%m%d%H%M')7, tm_sec=56, tm_wday=5, tm_yday=35, tm_isdst=0)
>>> t3 = time.gmtime(t1)
>>> print(t3)
time.struct_time(tm_year=2017, tm_mon=2, tm_mday=4, tm_hour=6','%Y%m%d%H%M')7, tm_sec=56, tm_wday=5, tm_yday=35, tm_isdst=0)
>>>

字符串格式转struct_time格式时间

>>> time.strptime('Sat Feb 04 14:06:42 2017)
time.struct_time(tm_year=2017, tm_mon=2, tm_mday=4, tm_hour=14','%Y%m%d%H%M')6, tm_sec=42, tm_wday=5, tm_yday=35, tm_isdst=-1)
>>> time.strptime('Sat Feb 04 14:06:42 2017', '%a %b %d %H:%M:%S %Y')
time.struct_time(tm_year=2017, tm_mon=2, tm_mday=4, tm_hour=14','%Y%m%d%H%M')6, tm_sec=42, tm_wday=5, tm_yday=35, tm_isdst=-1)
>>> time.strptime('2017-02-04 14:12', '%Y-%m-%d %H:%M'
time.struct_time(tm_year=2017, tm_mon=2, tm_mday=4, tm_hour=14','%Y%m%d%H%M')12, tm_sec=0, tm_wday=5, tm_yday=35, tm_isdst=-1)
>>> time.strptime('2017/02/04 14:12', '%Y/%m/%d %H:%M'
time.struct_time(tm_year=2017, tm_mon=2, tm_mday=4, tm_hour=14','%Y%m%d%H%M')12, tm_sec=0, tm_wday=5, tm_yday=35, tm_isdst=-1)
>>> time.strptime('201702041412', '%Y%m%d%H%M')
time.struct_time(tm_year=2017, tm_mon=2, tm_mday=4, tm_hour=14','%Y%m%d%H%M')12, tm_sec=0, tm_wday=5, tm_yday=35, tm_isdst=-1)

, tm_min=

Conversión de formato struct_time a formato de cadena de tiempo-%m->>> time.strftime('%d %H:%M', time.localtime())
'2017-02-04 14:19'
Conversión de formato struct_time a formato de timestamp
>>> time.mktime(time.localtime())
1486189282.0

3Conversión de formato de tiempo

El formato de timestamp y el formato de cadena de tiempo, aunque se pueden convertir mediante el método ctime([secs]), la forma de cadena no se adapta bien a la situación de China. Por lo tanto, en general, no se pueden convertir directamente, necesitan de struct_time como intermediario, la relación de conversión es como sigue:

Noticia: El formato '%H:%M:%S' se puede reemplazar directamente con '%X'.

Cuatro, módulo datetime

El módulo datetime proporciona clases para manejar fechas y tiempos, tanto de manera simple como compleja. Aunque admite algoritmos de fechas y tiempos, su enfoque principal es proporcionar funciones de extracción de propiedades eficientes para formateo de salida y operaciones.

1Clases definidas en el módulo datetime

El módulo datetime define las siguientes clases:

Nombre de clase Descripción
datetime.date Representa la fecha, propiedades comunes: year, month y day
datetime.time Representa el tiempo, propiedades comunes: hour, minute, second, microsecond
datetime.datetime Representa la fecha y hora
datetime.timedelta Representa el intervalo de tiempo entre dos instancias de date, time, datetime, con una resolución (unidad mínima) que puede alcanzar microsegundos
datetime.tzinfo Clase base abstracta para objetos de información de zona horaria. Se utilizan en datetime y time para ajustar el tiempo personalizado.
datetime.timezone Python 3.2Una nueva funcionalidad añadida en el módulo datetime, que implementa la clase base abstracta tzinfo, representa el desplazamiento fijo con respecto a UTC

Es necesario aclarar que: los objetos de estas clases son inmutables.

Relaciones entre clases:

object
 date
 datetime
 time
 timedelta
 tzinfo
 timezone

2Constantes definidas en el módulo datetime

Nombre de constante Descripción
datetime.MINYEAR El valor mínimo permitido para el año en objetos datetime.date o datetime.datetime, es1
datetime.MAXYEAR El valor máximo del año permitido para el objeto datetime.date o datetime.datetime, solo es9999

3. La clase datetime.date

Definición de la clase datetime.date

class datetime.date(year, month, day)

Los parámetros year, month y day son obligatorios, y los rangos de valores de cada parámetro son:

nombre del parámetro rango de valores
año [MINYEAR, MAXYEAR]
mes [1, 12]
día [1, día del mes del año especificado]

método y atributo de clase

método de clase/Nombre del atributo Descripción
date.max La fecha más grande que puede representar el objeto date:9999-12-31
date.min La más pequeña logitud que puede representar el objeto date: 00001-01-01
date.resoluation La unidad más pequeña de la fecha que representa el objeto date: día
date.today() Devuelve un objeto date que representa la fecha local actual
date.fromtimestamp(timestamp) Devuelve un objeto date para una marca de tiempo dada

método y atributo del objeto

método del objeto/Nombre del atributo Descripción
d.year Año
d.month Mes
d.day Día
d.replace(year[, month[, day]]) Genera y devuelve un nuevo objeto date, sin modificar el objeto original
d.timetuple() Devuelve el objeto struct_time correspondiente a la fecha
d.toordinal() Devuelve la fecha desde 0001-01-01 Cuántos días al principio
d.weekday() Devuelve cuál es el día de la semana, [0, 6], 0 representa lunes
d.isoweekday() Devuelve cuál es el día de la semana, [1, 7], 1Representa lunes
d.isocalendar() Devuelve una tupla en formato: (año, día de la semana, día de la semana ISO)
d.isoformat() Devuelve 'YYYY-MM-Cadena de fecha en formato DD'
d.strftime(format) Devuelve una cadena de fecha en formato especificado, similar a la función strftime(format, struct_time) del módulo time

Ejemplo

>>> import time
>>> from datetime import date
>>>
>>> date.max
datetime.date(9999, 12, 31)
>>> date.min
datetime.date(1, 1, 1)
>>> date.resolution
datetime.timedelta(1)
>>> date.today()
datetime.date(2017, 2, 4)
>>> date.fromtimestamp(time.time())
datetime.date(2017, 2, 4)
>>>
>>> d = date.today()
>>> d.year
2017
>>> d.month
2
>>> d.day
4
>>> d.replace(2016)
datetime.date(2016, 2, 4)
>>> d.replace(2016, 3)
>>> d.replace(2016, 3, 2)
datetime.date(2016, 3, 2)
>>> d.timetuple()
time.struct_time(tm_year=2017, tm_mon=2, tm_mday=4, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=35, tm_isdst=-1)
>>> d.toordinal()
736364
>>> d.weekday()
5
>>> d.isoweekday()
6
>>> d.isocalendar()
(2017, 5, 6)
>>> d.isoformat()
'2017-02-04'
>>> d.ctime()
'Sat Feb 4 00:00:00 2017'
>>> d.strftime('%Y/%m/%d')
'2017/02/04'

4. datetime.time类

time类的定义

class datetime.time(hour, [minute[, second, [microsecond[, tzinfo]]]])

hour为必须参数,其他为可选参数。各参数的取值范围为:

nombre del parámetro rango de valores
hora [0, 23]
minuto [0, 59]
segundo [0, 59]
microsegundo [0, 1000000]
tzinfo objeto subclase de tzinfo, como una instancia de la clase timezone

método y atributo de clase

método de clase/Nombre del atributo Descripción
time.max time类所能表示的最大时间:time(23, 59, 59, 999999)
time.min time类所能表示的最小时间:time(0, 0, 0, 0)
time.resolution 时间的最小单位,即两个不同时间的最小差值:1微秒

método y atributo del objeto

método del objeto/Nombre del atributo Descripción
t.hour
t.minute
t.second
t.microsecond 微秒
t.tzinfo 返回传递给time构造方法的tzinfo对象,如果该参数未给出,则返回None
t.replace(hour[, minute[, second[, microsecond[, tzinfo]]]]) 生成并返回一个新的时间对象,原时间对象不变
t.isoformat() 返回一个‘HH:MM:SS.%f’格式的时间字符串
t.strftime() 返回指定格式的时间字符串,与time模块的strftime(format, struct_time)功能相同

Ejemplo

>>> from datetime import time
>>>
>>> time.max
datetime.time(23, 59, 59, 999999)
>>> time.min
datetime.time(0, 0)
>>> time.resolution
datetime.timedelta(0, 0, 1)
>>>
>>> t = time(20, 5, 40, 8888)
>>> t.hour
20
>>> t.minute
5
>>> t.second
40
>>> t.microsecond
8888
>>> t.tzinfo
>>>
>>> t.replace21)
datetime.time(21, 5, 40, 8888)
>>> t.isoformat()
'20:05:40.008888'
>>> t.strftime('%H%M%S')
'200540'
>>> t.strftime('%H%M%S.%f')
'200540.008888'

5. clase datetime.datetime

definición de la clase datetime

class datetime.datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None)

year, month y day son parámetros obligatorios, tzinfo puede ser None o una instancia de la subclase tzinfo.

el rango de valores de cada parámetro es:

nombre del parámetro rango de valores
año [MINYEAR, MAXYEAR]
mes [1, 12]
día [1, día del mes del año especificado]
hora [0, 23]
minuto [0, 59]
segundo [0, 59]
microsegundo [0, 1000000]
tzinfo objeto subclase de tzinfo, como una instancia de la clase timezone

si un parámetro está fuera de este rango, se producirá una excepción ValueError.

método y atributo de clase

método de clase/Nombre del atributo Descripción
datetime.today() devolver un objeto datetime que representa la fecha y hora actual del período
datetime.now([tz]) devolver un objeto datetime con la fecha y hora de la zona horaria especificada, si no se especifica tz, el resultado es el mismo
datetime.utcnow() devolver un objeto datetime con la fecha y hora UTC actual
datetime.fromtimestamp(timestamp[, tz]) crear un objeto datetime según un timestamp especificado
datetime.utcfromtimestamp(timestamp) crear un objeto datetime según un timestamp especificado
datetime.combine(date, time) combinar un objeto date y time en un objeto datetime
datetime.strptime(date_str, format) convertir una cadena de tiempo en un objeto datetime

método y atributo del objeto

método del objeto/Nombre del atributo Descripción
dt.year, dt.month, dt.day año, mes, día
dt.hour, dt.minute, dt.second hora, minuto, segundo
dt.microsecond, dt.tzinfo 微秒、时区信息
dt.date() 获取datetime对象对应的date对象
dt.time() 获取datetime对象对应的time对象, tzinfo 为None
dt.timetz() 获取datetime对象对应的time对象,tzinfo与datetime对象的tzinfo相同
dt.replace([year[, month[, day[, hour[, minute[, second[, microsecond[, tzinfo]]]]]]]]) 生成并返回一个新的datetime对象,如果所有参数都没有指定,则返回一个与原datetime对象相同的对象
dt.timetuple() 返回datetime对象对应的tuple(不包括tzinfo)
dt.utctimetuple() 返回datetime对象对应的utc时间的tuple(不包括tzinfo)
dt.toordinal() 同date对象
dt.weekday() 同date对象
dt.isocalendar() 同date独享
dt.isoformat([sep]) 返回一个‘%Y-%m-%d
dt.ctime() 等价于time模块的time.ctime(time.mktime(d.timetuple()))
dt.strftime(format) 返回指定格式的时间字符串

Ejemplo

>>> from datetime import datetime, timezone
>>>
>>> datetime.today()
datetime.datetime(2017, 2, 4, 20, 44, 40, 556318)
>>> datetime.now()
datetime.datetime(2017, 2, 4, 20, 44, 56, 572615)
>>> datetime.now(timezone.utc)
datetime.datetime(2017, 2, 4, 12, 45, 22, 881694, tzinfo=datetime.timezone.utc)
>>> datetime.utcnow()
datetime.datetime(2017, 2, 4, 12, 45, 52, 812508)
>>> import time
>>> datetime.fromtimestamp(time.time())
datetime.datetime(2017, 2, 4, 20, 46, 41, 97578)
>>> datetime.utcfromtimestamp(time.time())
datetime.datetime(2017, 2, 4, 12, 46, 56, 989413)
>>> datetime.combine(date(2017, 2, 4), t)
datetime.datetime(2017, 2, 4, 20, 5, 40, 8888)
>>> datetime.strptime('2017/02/04 20:49', '%Y/%m/%d %H:%M'
datetime.datetime(2017, 2, 4, 20, 49)
>>> dt = datetime.now()
>>> dt
datetime.datetime(2017, 2, 4, 20, 57, 0, 621378)
>>> dt.year
2017
>>> dt.month
2
>>> dt.day
4
>>> dt.hour
20
>>> dt.minute
57
>>> dt.second
0
>>> dt.microsecond
621378
>>> dt.tzinfo
>>> dt.timestamp()
1486213020.621378
>>> dt.date()
datetime.date(2017, 2, 4)
>>> dt.time()
datetime.time(20, 57, 0, 621378)
>>> dt.timetz()
datetime.time(20, 57, 0, 621378)
>>> dt.replace()
datetime.datetime(2017, 2, 4, 20, 57, 0, 621378)
>>> dt.replace(2016)
datetime.datetime(2016, 2, 4, 20, 57, 0, 621378)
>>> dt.timetuple()
time.struct_time(tm_year=2017, tm_mon=2, tm_mday=4, tm_hour=20, tm_min=57, tm_sec=0, tm_wday=5, tm_yday=35, tm_isdst=-1)
>>> dt.utctimetuple()
time.struct_time(tm_year=2017, tm_mon=2, tm_mday=4, tm_hour=20, tm_min=57, tm_sec=0, tm_wday=5, tm_yday=35, tm_isdst=0)
>>> dt.toordinal()
736364
>>> dt.weekday()
5
>>> dt.isocalendar()
(2017, 5, 6)
>>> dt.isoformat()
'2017-02-04T20:57:00.621378'
>>> dt.isoformat(sep='/)
'2017-02-04/20:57:00.621378'
>>> dt.isoformat(sep=' ')
'2017-02-04 20:57:00.621378'
>>> dt.ctime()
'Sat Feb 4 20:57:00 2017'
>>> dt.strftime('%Y%m%d %H:%M:%S.%f')
'20170204 20:57:00.621378'

6. Convertir timestamps y cadenas de fecha utilizando la clase datetime.datetime

7. clase datetime.timedelta

El objeto timedelta representa la diferencia entre dos fechas diferentes. Si se utiliza el módulo time para realizar operaciones aritméticas con fechas, solo se puede convertir primero a formato de timestamp la cadena de formato de fecha y el objeto struct_time, luego sumar o restar n segundos a este timestamp y finalmente convertirlo nuevamente al formato struct_time o cadena. Esto es claramente muy incómodo. Mientras tanto, la clase timedelta proporcionada por el módulo datetime nos permite realizar operaciones aritméticas muy fáciles con los objetos datetime.date, datetime.time y datetime.datetime, y la unidad de diferencia entre dos fechas también es más fácil de controlar.
 La unidad de este valor de diferencia puede ser: día, segundo, microsegundo, milisegundo, minuto, hora, semana.

Definición de la clase datetime.timedelta

class datetime.timedelta(días=0, segundos=0, microsegundos=0, milisegundos=0, horas=0, semanas=0)

Todos los parámetros son parámetros predeterminados, por lo tanto, son parámetros opcionales. El valor de los parámetros puede ser un entero o un flotante, también puede ser un número positivo o negativo. Los valores internos se almacenan en days, seconds y microseconds, y todos los otros parámetros se convertirán a esto3unidades:

  • 1se convierten en1000 microsegundos
  • 1se convierten en60 segundos
  • 1se convierten en3600 segundos
  • 1se convierten en7días

Luego de esto3Normalizar un número de valores para que su representación sea única:

  • microsegundos : [0, 999999]
  • segundos : [0, 86399]
  • días : [-999999999, 999999999]

Atributo de clase

Nombre de atributo de clase Descripción
timedelta.min timedelta(-999999999)
timedelta.max timedelta(días=999999999, horas=23, minutos=59, segundos =59, microseconds=999999)
timedelta.resolution timedelta(microsegundos=1)

Métodos y atributos de instancia

Método de instancia/Nombre del atributo Descripción
td.days días [-999999999, 999999999]
td.seconds segundos [0, 86399]
td.microseconds microsegundos [0, 999999]
td.total_seconds() El número total de segundos en la diferencia de tiempo, equivalente a: td / timedelta(segundos=1)

Método/Atributo Descripción
datetime.datetime.now() Devuelve la hora local actual (instancia del objeto datetime.datetime)
datetime.datetime.fromtimestamp(timestamp) Devuelve la hora correspondiente a la marca de tiempo especificada (instancia del objeto datetime.datetime)
datetime.timedelta() Devuelve un objeto intervalo de tiempo, que se puede sumar o restar directamente con objetos datetime.datetime

Ejemplo

>>> import datetime
>>>
>>> datetime.timedelta(365).total_seconds() # Un año contiene un total de segundos
31536000.0
>>> dt = datetime.datetime.now()
>>> dt + datetime.timedelta(3) # 3después de
datetime.datetime(2017, 2, 8, 9, 39, 40, 102821)
>>> dt + datetime.timedelta(-3) # 3días antes
datetime.datetime(2017, 2, 2, 9, 39, 40, 102821)
>>> dt + datetime.timedelta(hours=3) # 3horas después
datetime.datetime(2017, 2, 5, 12, 39, 40, 102821)
>>> dt + datetime.timedelta(hours=-3) # 3horas antes
datetime.datetime(2017, 2, 5, 6, 39, 40, 102821)
>>> dt + datetime.timedelta(hours=3, segundos =30) # 3hora30 segundos después 
datetime.datetime(2017, 2, 5, 12, 40, 10, 102821)

Sección 5: Códigos de formato de tiempo

El módulo time struct_time y las clases datetime, date, time del módulo datetime proporcionan el método strftime(), que puede generar una cadena de tiempo en un formato específico. El formato específico se compone de una serie de códigos de formato (caracteres de formato), Python finalmente llama a la función strftme() de la biblioteca C de cada plataforma, por lo que el soporte de todos los códigos de formato puede variar en cada plataforma,具体情况 debe referirse a strftime en la plataforma correspondiente (3) Documento. A continuación, se enumeran los códigos de formato estándar de C (1989Requiere todos los códigos de formato especificados: ellos pueden funcionar en todas las plataformas de implementación estándar de C:

Sección 6: Resumen

Entonces, ¿es mejor usar el módulo time en Python o el módulo datetime para manejar el tiempo? En mi opinión, el módulo datetime básicamente puede satisfacer las necesidades y es realmente más conveniente de usar. Para el módulo time, solo uso el método time.time() para obtener el timestamp del tiempo actual, por supuesto, también se puede obtener a través de datetime.datetime.now().timestamp(), solo parece más complicado. Creo que depende de la costumbre personal, no hay una diferencia absoluta entre lo bueno y lo malo.

Eso es todo el contenido de este artículo, espero que sea útil para su aprendizaje y que todos nos apoyemos mutuamente en el tutorial de clamor.

Declaración: el contenido de este artículo se ha obtenido de la red, es propiedad del autor original, el contenido se ha contribuido y subido por los usuarios de Internet, este sitio no posee los derechos de propiedad, no se ha procesado editorialmente por humanos y no asume responsabilidades legales relacionadas. Si encuentra contenido sospechoso de infracción de derechos de autor, por favor envíe un correo electrónico a: notice#oldtoolbag.com (al enviar un correo electrónico, reemplace # con @ para denunciar y proporcione evidencia. Una vez confirmado, este sitio eliminará inmediatamente el contenido sospechoso de infracción de derechos de autor.)

Te gustará