Tabla de contenido
necesidad
Los siguientes dos requisitos generalmente se encuentran en la lógica de negocios:
- cadena a marca de tiempo
- convertir marca de tiempo en cadena
Para la escritura del módulo de tiempo
import time
time_str = "2022-09-27 17-35-35"
time_seconds = time.time()
#字符串转时间戳
time.mktime(time.strptime(time_str, "%Y-%m-%d %H-%M-%S"))
#时间戳转字符串
time.strftime("%Y-%m-%d %H-%M-%S", time.localtime(time_seconds))
Para el método de escritura del módulo de fecha y hora
import time
import datetime
time_str = "2022-09-27 17-35-35"
time_stamps = 11111111
#datetime.datetime.now()获得当前时间的datetime对象
datetime_obj1 = datetime.datetime.now() # datetime.datetime(2022, 9, 27, 19, 15, 2, 523000)
# 将字符串解析为atetime.datetime对象,再转换为时间戳
datetime_obj2 = datetime.datetime.strptime(time_str, "%Y-%m-%d %H-%M-%S")
time_stamps1 = time.mktime(datetime_obj2 .timetuple())
print(time_stamps1) # 输出 1664271335.0
#将时间戳转换为字符串,带时区
datetime_obj3 = datetime.datetime.fromtimestamp(time_stamps)
print(datetime_obj3) # 这里可以直接打印,会有默认的格式 这里输出 1970-05-09 22:25:11
time_str1 = datetime.datetime.strftime(datetime_obj3, "%Y-%m-%d %H-%M-%S") # 转换为指定的格式
print(time_str1) # 输出 1970-05-09 22-25-11
#格林威治时间转换,不带时区
datetime_obj4 = datetime.datetime.utcfromtimestamp(time_stamps ) # datetime.datetime(1970, 5, 9, 14, 25, 11)
如果是在东8时区(中国),datetime_obj3和datetime_obj4相差8小时
Para el uso del módulo de calendario
Este módulo se puede convertir a una marca de tiempo que no tiene nada que ver con la zona horaria. Si es necesaria la zona horaria, puede usar este módulo para convertirla primero a la hora media de Greenwich y luego convertirla a la zona horaria . , que puede evitar los problemas causados por cambiar la zona horaria en el lado del cliente.
import calendar
time_str = "2022-09-27 17-35-35"
datetime_obj = datetime.datetime.strptime(time_str, "%Y-%m-%d %H-%M-%S")
time_stamps = calendar.timegm(datetime_obj.timetuple())
print(time_stamps) # 输出 1664300135,这个是格林威治时间
Cómo distinguir entre strptime y strftime
Para los estudiantes que han usado estas dos funciones, puede haber tal confusión. Cómo recordar estas dos funciones, una se usa para convertir de cadena a marca de tiempo, y la otra se usa para convertir de marca de tiempo a cadena. Se puede entender en esto manera, en primer lugar, es strptime, p significa analizar, y la palabra significa hacer análisis gramatical y análisis sintáctico; significa analizar el tipo definido por nosotros, como "2022-09-28 09-47-18 "formato, por lo que strptime es la interfaz utilizada para convertir cadenas en marcas de tiempo ; para strftime, f corresponde a formato, la palabra significa formato, y el formato se convierte en el tipo adecuado para ver; por lo tanto, strftime es la conversión de marcas de tiempo en cadenas La interfaz usado _
epílogo
De hecho, el módulo de tiempo generalmente se puede usar para convertir entre marcas de tiempo y cadenas, pero será más conveniente usar el módulo de detección de tiempo junto con el módulo de tiempo.