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")

 

posted @ 2023-07-24 23:09  yanghui01  阅读(20)  评论(0编辑  收藏  举报