Conversión de la marca de tiempo de Pyhton y la cadena de tiempo

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.

Supongo que te gusta

Origin blog.csdn.net/qq_41841073/article/details/127076412
Recomendado
Clasificación