【python日期和时间处理】time模块基本使用

1. time模块中三种时间格式

  1. 时间戳
    time模块获取各种精度的时间戳
import time
timestamp = time.time()
timestamp_s = int(time.time())  # s精度
timestamp_ms = int(time.time() * 1000)  # ms精度
timestamp_us = int(time.time() * 1000_000)  # μs精度
timestamp_ns = time.time_ns()  # ns精度
print(timestamp)
print(timestamp_s)
print(timestamp_ms)
print(timestamp_us)
print(timestamp_ns)

执行结果:

1672829205.6756904  # s
1672829205  # s
1672829205675  # ms
1672829205675690  # μs
1672829205675690400  # ns
  1. 格式化时间字符串
    如"2023-01-03 17:18:00"

  2. 时间元组

# 获取当前时间元组的两种方式
time.localtime()
Out[21]: time.struct_time(tm_year=2023, tm_mon=1, tm_mday=4, tm_hour=18, tm_min=42, tm_sec=48, tm_wday=2, tm_yday=4, tm_isdst=0)
time.gmtime()
Out[24]: time.struct_time(tm_year=2023, tm_mon=1, tm_mday=4, tm_hour=10, tm_min=43, tm_sec=58, tm_wday=2, tm_yday=4, tm_isdst=0)

2. 三种时间格式相互转化

在这里插入图片描述

2.1 时间戳转时间元组及格式化时间字符串

  1. time.localtime(secs)——将时间戳转换为本地时间
time.localtime(1672824240)
Out[6]: time.struct_time(tm_year=2023, tm_mon=1, tm_mday=4, tm_hour=17, tm_min=24, tm_sec=0, tm_wday=2, tm_yday=4, tm_isdst=0)
  1. time.gmtime(secs)——将时间戳转换为格林威治时间
time.gmtime(1672824240)
Out[5]: time.struct_time(tm_year=2023, tm_mon=1, tm_mday=4, tm_hour=9, tm_min=24, tm_sec=0, tm_wday=2, tm_yday=4, tm_isdst=0)
  1. time.ctime(secs)——将时间戳转成格式化时间字符串
time.ctime(1672824240)
Out[4]: 'Wed Jan  4 17:24:00 2023'

注意

  • 北京时间比utc和gmt时间要快8个小时,即北京时间下午17点的时候,对应的是utc和gmt时间的早上9点
  • 以上api传入的时间戳必须是秒级精度的时间戳

2.2 时间元组转其他

  1. time.mktime()——将时间元组转成秒级精度的时间戳
time.mktime(time.localtime())
Out[19]: 1672825929.0
  1. time.strftime(format, p_tuple)——将时间元组转成格式化时间字符串
p_tuple = time.localtime()
p_tuple
Out[8]: time.struct_time(tm_year=2023, tm_mon=1, tm_mday=4, tm_hour=18, tm_min=17, tm_sec=6, tm_wday=2, tm_yday=4, tm_isdst=0)
time.strftime("%Y-%m-%d %H:%M:%S", p_tuple)
Out[11]: '2023-01-04 18:17:06'
  1. time.asctime(p_tuple)——将时间元组转成成固定格式的时间字符串(%a %b %d %H %M %S %Y)
p_tuple = time.localtime()
p_tuple
Out[13]: time.struct_time(tm_year=2023, tm_mon=1, tm_mday=4, tm_hour=18, tm_min=25, tm_sec=6, tm_wday=2, tm_yday=4, tm_isdst=0)
time.asctime(p_tuple)
Out[14]: 'Wed Jan  4 18:25:06 2023'

2.3 格式化时间字符串转时间元组(在time模块中,格式化时间字符串只能直接转成时间元组)

  1. time.strptime(string, format)——将字符串(str)解析(p)成时间元组(time)
time_str = "2022-01-04 18:27:00"
time.strptime(time_str, "%Y-%m-%d %H:%M:%S")
Out[16]: time.struct_time(tm_year=2022, tm_mon=1, tm_mday=4, tm_hour=18, tm_min=27, tm_sec=0, tm_wday=1, tm_yday=4, tm_isdst=-1)
posted @ 2024-10-12 17:13  berlin-fly  阅读(13)  评论(0编辑  收藏  举报