Python之时间类型间的转换

前言

因为比较常用到时间类型的转换,但小脑袋总是记不大住,这篇博客主要是梳理个人比较常用的操作,便于后续的翻阅~

时间转换

# 模块使用
import time
from datetime import datetime, date, timedelata

获取日期(datetime类型)

# 获取当前时间
datetime.now() # datetime.datetime(2019, 8, 25, 15, 42, 21, 928142)
date.today() # datetime.date(2019, 8, 25)

# 计算前几天
date.today() - timedelta(days=i)  # i表示时间间隔
# 计算后几天
date.today() + timedelta(days=i)

日期(datetime类型转str类型)

# 重点是strftime的使用
date.today().strftime("%Y%m%d") # '20190825' (格式可以自行确定)
(date.today() - timedelta(days=1)).strftime('%Y-%m-%d') # '2019-08-24'

日期(str类型转datetime类型)

# 重点是strptime的使用
# 两个参数要一一对应
datetime.strptime('2017-06-08 17:14:34', "%Y-%m-%d %H:%M:%S") # datetime.datetime(2017, 6, 8, 17, 14, 34)
datetime.strptime('2017-06-08', "%Y-%m-%d") # datetime.datetime(2017, 6, 8, 0, 0)

日期(提取月份星期等)

# 根据需要改变参数
date.today().strftime("%m") # '08'
date.today().strftime("%d") # '25'
datetime.strptime('2017-06-08', "%Y-%m-%d").strftime("%d") # '08'

# 星期几
date.today().weekday() # 6 (0-6表示星期一到星期天)

日期转时间戳

# datetime类型
time.mktime(datetime.now().timetuple())
# str类型
time.mktime(time.strptime('2017-06-08 17:14:34', "%Y-%m-%d %H:%M:%S"))

时间戳转日期

# 获取时间戳
now = int(time.time())

# datetime转换
datetime.utcfromtimestamp(now)  # datetime.datetime(2019, 8, 25, 8, 5, 37)

# str转换
datetime.utcfromtimestamp(now).strftime.strftime('%Y-%m-%d') '2019-08-25'

计算两个时间戳的时间差

def compute_time_span(time1):
    time1 = int(time1)
    time2 = time.time() # 当前时间
    date1 = time.strptime(datetime.utcfromtimestamp(time1).strftime("%Y-%m-%d"), "%Y-%m-%d")
    date2 = time.strptime(datetime.utcfromtimestamp(time2).strftime("%Y-%m-%d"), "%Y-%m-%d")
    date1 = datetime(date1[0], date1[1], date1[2])
    date2 = datetime(date2[0], date2[1], date2[2])
    return (date2-date1).days
发布了53 篇原创文章 · 获赞 30 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/Totoro1745/article/details/100063765