Python入门 - 日期时间
常见用法
# 时区 print(time.timezone) # -28800 print(time.tzname) # ('中国标准时间', '中国夏令时') # 当前时间 utcSec = time.time() # 时间戳, 距离1970-01-01 00:00:00的秒数 print(type(utcSec)) # <class 'float'> print(utcSec) # 1690251260.998507 # 时间戳 -> struct_time dt = time.localtime(utcSec) # 返回当前时区的时间对象 print(type(dt)) # <class 'time.struct_time'> print(dt) print(f"当前时间: {dt.tm_year}/{dt.tm_mon}/{dt.tm_mday} {dt.tm_hour}:{dt.tm_min}:{dt.tm_sec} 周{dt.tm_wday+1}, 夏令时: {1 == dt.tm_isdst}") dt = time.gmtime(utcSec) # 返回标准时区的时间对象 print(type(dt)) # <class 'time.struct_time'> print(dt) # struct_time -> 时间戳 utcSec = time.mktime(dt) print(type(utcSec)) # <class 'float'> print(utcSec) # 时间格式化: struct_time -> 字符串 timeStr = time.asctime(dt) print(type(timeStr)) # <class 'str'> print(timeStr) # Fri Jul 21 14:45:05 2023 timeStr = time.strftime("%Y-%m-%d %H:%M:%S", dt) print(type(timeStr)) # <class 'str'> print(timeStr) # 2023-07-21 14:46:35 # 解析时间字符串: 字符串 -> struct_time dt = time.strptime("1970-01-01 08:01:12", "%Y-%m-%d %H:%M:%S") print(type(dt)) # <class 'time.struct_time'> print(dt)
datetime
dt = datetime.datetime.now() print(type(dt)) # <class 'datetime.datetime'> print(dt) # 2023-07-25 09:45:15.937445 # 日期格式化输出 print(dt.strftime("%Y-%m-%d %H:%M:%S")) print("%s-%02d-%02d %02d:%02d:%02d" % (dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second)) # 创建日期时间对象 dt = datetime.datetime.strptime("2023-01-31 08:00:10", "%Y-%m-%d %H:%M:%S") print(type(dt)) # <class 'datetime.datetime'> print(dt) # 2023-01-31 08:00:10
日期加减
dt1 = datetime.datetime(2023, 1, 30) dt2 = datetime.datetime(2023, 1, 30, 0, 0, 12) dt3 = datetime.datetime(2023, 2, 1) # 日期减法 delta1 = dt3 - dt1 print(type(delta1)) # <class 'datetime.timedelta'> print(delta1.days, delta1.seconds, delta1.total_seconds()) # 2 0 172800.0 delta2 = dt3 - dt2 print(delta2.days, delta2.seconds, delta2.total_seconds()) # 1 86388 172788.0 # 日期加法 dt4 = dt1 + datetime.timedelta(days=2) print(type(dt4)) # <class 'datetime.datetime'> print(dt4) # 2023-02-01 00:00:00 # 日期比较 if dt3 > dt2: print("ok")