Python中time与datetime模块详解
本文详细介绍Python中time和datetime模块的核心用法。涵盖时间戳、时间元组及格式化时间的三种表现形式,解析格式转换逻辑。通过代码示例演示如何获取当前时间、计算时间差、进行字符串与时间戳互转,以及利用datetime类处理日期加减,帮助开发者高效应对Web开发中的复杂时间业务逻辑。
前言
在Python Web开发中,业务逻辑往往涉及繁杂的时间约束,例如展示用户一日内的所有操作记录,或在验证码验证时对比当前时间与生成时间以判断是否超过10分钟有效期。这些场景要求开发者熟练掌握Python中的time和datetime模块,只有灵活运用这两个模块,才能在代码中从容处理各类时间相关业务。
time模块
time模块中时间的表现形式主要有三种:
- a、timestamp(时间戳):表示从1970年1月1日00:00:00开始按秒计算的偏移量。
- b、struct_time(时间元组):包含九个元素的元组结构。
- c、format time(格式化时间):经过格式化处理的时间,更具可读性,包括自定义格式和固定格式。
1、时间格式转换图

2、常用方法
import time
print(time.time()) # 当前时间戳
>>> 1569645479.6079931
print(int(time.time()))
>>> 1569645479
print(time.strftime('%Y-%m-%d %H:%M:%S')) # 格式化的时间
>>> 2019-09-28 12:37:59
print(time.strftime('%Y-%m-%d'))
>>> 2019-09-28
print(time.strftime('%H:%M:%S'))
>>> 12:37:59
print(time.gmtime()) # 获取标准时区的时间元组,如果传入了时间戳,就是把时间戳转换成时间元组
>>> time.struct_time(tm_year=2019, tm_mon=9, tm_mday=28, tm_hour=4, tm_min=37, tm_sec=59, tm_wday=5, tm_yday=271, tm_isdst=0)
print(time.gmtime(1569645453))
>>> time.struct_time(tm_year=2019, tm_mon=9, tm_mday=28, tm_hour=4, tm_min=37, tm_sec=33, tm_wday=5, tm_yday=271, tm_isdst=0)
# 使用时间戳获取代码执行时间
s_time = time.time()
for i in range(0,10):
time.sleep(1)
e_time = time.time()
print('代码运行时间是:', e_time-s_time)
>>> 代码运行时间是: 10.003105163574219
# 字符串格式化时间转换时间戳
str_time = '2019-9-28'
print(time.mktime(time.strptime(str_time, '%Y-%m-%d')))
>>> 1569600000.0
# 时间戳转换成格式化的时间字符串
gsh_time = time.time()
print(time.strftime('%Y-%m-%d', time.localtime(gsh_time)))
>>> 2019-09-28
3、datetime模块
datetime模块对time模块进行了重新封装,提供了更多接口。其包含的类有:date、time、datetime、timedelta和tzinfo。
import datetime
now = datetime.datetime.now()
print(now)
>>> 2019-09-28 12:45:59.927901
now = datetime.datetime.now()
d1 = now - datetime.timedelta(hours=1) # 获取前一小时
d2 = now - datetime.timedelta(days=1) # 获取前一天
print(now)
>>> 2019-09-28 12:47:56.662933
print(d1)
>>> 2019-09-28 11:47:56.662933
print(d2)
>>> 2019-09-27 12:47:56.662933
# datetime对象转换成时间戳
dt = datetime.datetime.now()
print(time.mktime(dt.timetuple()))
>>> 1569646475.0
# 时间戳转换成datetime对象
sjc_time = time.time()
print(datetime.datetime.fromtimestamp(sjc_time))
>>> 2019-09-28 12:55:05.500752
以上就是Python中time和datetime模块使用的详细内容,更多关于Python time和datetime模块的资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













