Python datetime模块:时间获取、转换与运算实战

听雨眠
听雨眠
发布时间:2026-10-11 | 2人浏览过
原创

本文详细介绍Python中datetime模块的核心用法,涵盖获取当前时间各字段、datetime与字符串的双向转换(strftime与strptime),以及利用timedelta进行时间加减运算。通过具体代码示例,帮助开发者高效处理日常开发中的时间处理需求。

获取当前时间的详细信息

在Python中,datetime.datetime.now() 是最常用的获取当前系统时间的方法。该函数返回一个包含年、月、日、时、分、秒等详细信息的 datetime 对象。通过访问该对象的属性,可以分别提取具体的时间分量。

# -*- encoding=utf-8 -*-
import datetime
now = datetime.datetime.now()
print("now:{}".format(now))
year = now.year
print("year:{}".format(year))
month = now.month
print("month:{}".format(month))
day = now.day
print("day:{}".format(day))
hour = now.hour
print("hour:{}".format(hour))
minute = now.minute
print("minute:{}".format(minute))
second = now.second
print("second:{}".format(second))

datetime对象与字符串的相互转换

在实际开发中,经常需要在时间对象与字符串格式之间进行转换。Python提供了两个关键方法:strftime() 用于将 datetime 对象格式化为字符串,而 strptime() 则用于将特定格式的字符串解析回 datetime 对象。

datetime 转为 string

使用 strftime() 方法,可以指定格式字符串(如 '%Y-%m-%d %H:%M:%S')将时间对象转换为人类可读的字符串格式。

# -*- encoding=utf-8 -*-
import datetime
now = datetime.datetime.now()
print('type:{}'.format(type(now)))
print('now datetime:{}'.format(now))
now_string = now.strftime('%Y-%m-%d %H:%M:%S')
print('type:{}'.format(type(now_string)))
print('now string:{}'.format(now_string))

string 转为 datetime

若要将字符串转换回 datetime 对象,需使用 strptime() 方法。该方法需要两个参数:待解析的字符串和对应的格式字符串。格式必须与字符串完全匹配,否则将引发异常。

# -*- encoding=utf-8 -*-
import datetime
time_str = '2021-01-28 10:51:26'
time_date = datetime.datetime.strptime(time_str, '%Y-%m-%d %H:%M:%S')
print('type:{}'.format(type(time_date)))
print(time_date)

时间的加减运算

Python 的 datetime 模块提供了 timedelta 类,用于表示两个时间点之间的差值或进行时间偏移计算。通过创建 timedelta 对象,可以方便地对时间进行增加或减少操作。

时间相加

要计算未来某个时间点,可以创建一个 timedelta 对象并指定天、小时、分钟和秒数,然后将其加到原始时间对象上。

# -*- encoding=utf-8 -*-
import datetime
time_str = '2021-01-28 10:00:00'
time_date = datetime.datetime.strptime(time_str, '%Y-%m-%d %H:%M:%S')
print('原始时间:\t\t\t\t{}'.format(time_date))
add_info = datetime.timedelta(days=1, hours=2, minutes=3, seconds=4)
add_end = time_date + add_info
print('加上1天2个小时3分钟4秒后:\t{}'.format(add_end))

时间相减

计算两个时间点之间的差值,可以直接使用减法运算符。此外,通过为 timedelta 指定负数参数,也可以实现时间的减少操作。

# -*- encoding=utf-8 -*-
import datetime
time_str = '2021-01-28 10:00:00'
time_date = datetime.datetime.strptime(time_str, '%Y-%m-%d %H:%M:%S')
print('原始时间:\t{}'.format(time_date))
time_str = '2021-05-29 12:12:12'
time_date2 = datetime.datetime.strptime(time_str, '%Y-%m-%d %H:%M:%S')
print('原始时间2:\t{}'.format(time_date2))
time_date3 = time_date2 - time_date
print('时间差:{}'.format(time_date3))
# -*- encoding=utf-8 -*-
import datetime
time_str = '2021-01-28 10:00:00'
time_date = datetime.datetime.strptime(time_str, '%Y-%m-%d %H:%M:%S')
print('原始时间:\t\t\t\t{}'.format(time_date))
add_info = datetime.timedelta(days=-1, hours=-2, minutes=-3, seconds=-4)
add_end = time_date + add_info
print('减去1天2个小时3分钟4秒后:\t{}'.format(add_end))

以上就是Python datetime模块:时间获取、格式转换与加减运算的详细内容,更多关于Python时间处理技巧的资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表