Python 一篇文章看懂时间日期对象
概述
日期和时间是我们在编程中经常需要涉及的一个领域。在 Python 中,处理日期时间相对较为简单,主要通过 datetime 模块来实现。本文将从以下几个方面来介绍 Python 中的日期时间处理:
- datetime 模块的基本使用
- 字符串与 datetime 对象之间的转换
- 时间戳的表示及相关操作
datetime 模块的基本使用
datetime 模块是 Python 处理日期时间的核心模块,主要提供了日期、时间、日期时间等对象,并定义了一些常用操作方法。下面介绍一些常用的方法:
datetime 对象
datetime 对象用于表示一个日期时间,包含年、月、日、时、分、秒、毫秒等属性。
>>> import datetime
>>> now = datetime.datetime.now()
>>> print(now)
2021-06-15 17:23:22.505391
>>> print(now.year, now.month, now.day)
2021 6 15
>>> print(now.hour, now.minute, now.second, now.microsecond)
17 23 22 505391
date 对象
date 对象用于表示一个日期,包含年、月、日属性。
>>> today = datetime.date.today()
>>> print(today)
2021-06-15
>>> print(today.year, today.month, today.day)
2021 6 15
time 对象
time 对象用于表示一个时间,包含时、分、秒等属性。
>>> t = datetime.time(16, 30, 45)
>>> print(t)
16:30:45
>>> print(t.hour, t.minute, t.second, t.microsecond)
16 30 45 0
timedelta 对象
timedelta 对象表示两个日期时间之间的时间差。
>>> d1 = datetime.datetime(2021, 1, 1)
>>> d2 = datetime.datetime(2021, 6, 15)
>>> delta = d2 - d1
>>> print(delta)
165 days, 0:00:00
字符串与 datetime 对象之间的转换
在 Python 中,我们可以通过 strptime() 方法将字符串转换成 datetime 对象,也可以通过 strftime() 方法将 datetime 对象格式化成字符串。
字符串转 datetime 对象
>>> dt_str = '2021-06-15 17:23:22.505391'
>>> dt_obj = datetime.datetime.strptime(dt_str, '%Y-%m-%d %H:%M:%S.%f')
>>> print(dt_obj)
2021-06-15 17:23:22.505391
datetime 对象转字符串
>>> dt_obj = datetime.datetime.now()
>>> dt_str = dt_obj.strftime('%Y-%m-%d %H:%M:%S.%f')
>>> print(dt_str)
2021-06-15 17:23:22.505391
时间戳的表示及相关操作
时间戳是指从 1970 年 1 月 1 日 0 时 0 分 0 秒(UTC,格林威治时间)起到现在的总秒数。在 Python 中,可以通过 time 模块中的 time() 方法获取当前时间戳,也可以通过 mktime() 方法将 datetime 对象转换成时间戳。
>>> import time
>>> now_timestamp = time.time()
>>> print(now_timestamp)
1623770602.509085
>>> dt_obj = datetime.datetime.now()
>>> dt_timestamp = time.mktime(dt_obj.timetuple())
>>> print(dt_timestamp)
1623770602.0
时间戳与 datetime 对象之间的转换
>>> ts = 1623770602.0
>>> dt_obj = datetime.datetime.fromtimestamp(ts)
>>> print(dt_obj)
2021-06-15 17:23:22
示例说明
示例一
假设我们要计算从今天到指定日期还有多少天,可以使用如下代码:
import datetime
today = datetime.date.today()
target_date_str = '2021-07-01'
target_date = datetime.datetime.strptime(target_date_str, '%Y-%m-%d').date()
delta = target_date - today
print(delta.days)
说明:首先获取当前日期对象 today,然后通过 strptime() 方法将目标日期字符串转换成日期对象 target_date,接着计算两个日期之间的时间差 delta,并输出 delta 的天数。
示例二
假设我们要将例一中的目标日期字符串转换成时间戳,可以使用以下代码:
import datetime
import time
target_date_str = '2021-07-01 00:00:00'
target_date = datetime.datetime.strptime(target_date_str, '%Y-%m-%d %H:%M:%S')
ts = time.mktime(target_date.timetuple())
print(ts)
说明:首先通过 strptime() 方法将目标日期字符串转换成 datetime 对象 target_date,并使用 mktime() 方法将其转换成时间戳 ts,并输出 ts 的值。
总结
本文介绍了 Python 中处理日期时间的基本方法,包括 datetime 模块的基本使用、字符串与 datetime 对象之间的转换以及时间戳的表示及相关操作,并给出了两个示例说明。通过本文的学习,相信大家已经掌握了 Python 中日期时间的处理方法,可以在自己的项目中灵活运用。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python 一篇文章看懂时间日期对象 - Python技术站