datetime是python处理时间和日期的标准库!
| 类名 | 功能 |
|---|---|
| date | 日期对象,常用的属性有year,month,day |
| time | 时间对象,常用的属性有hour,minute,second,毫秒 |
| datetime(常用!) | 日期时间对象,常用的属性有hour,minute,second,microsecond |
| timedelta(常用!) | 时间间隔对象,即两个时间点之间的长度 |
1、date类
date类是一个日期类,由年、月、日组成。由于Python也是面向对象编程语言,所以针对类,就会有构造函数,该类的构造函数如下:
-
class datetime.date(year, month, day):
year: 表示年,范围[MINYEAR, MAXYEAR],即[1, 9999]month: 表示月,范围[1, 12]day:一月中第几天,最大值根据给定的year,month参数来决定。例如闰年2月份有29天
1.1、示例
import datetime
now_date = datetime.date(2021, 8, 8) # 年,月,日
print(now_date) # 2021-08-08
1.2、返回日期对应的星期
import datetime
print(datetime.date(2021, 8, 8).weekday()) # 6
2、time类
import datetime
now_time = datetime.time(13, 27, 22, 3) # 时,分,秒,毫秒
print(now_time) # 13:27:22.000003
3、datetime类
3.1、常用方法:
- 获取当前日期时间:datetime.now()
- 获取当前日期:datetime.now().date()
- 获取当前时间:datetime.now().time()
3.1.1、示例
from datetime import datetime
now_datetime = datetime.now()
print('当前日期时间:', now_datetime)
print('当前日期:', now_datetime.date())
print('当前时间:', now_datetime.time())
3.2、日期时间转化为时间戳
datetime.now().timestamp()
3.2.1、示例
from datetime import datetime
print(datetime.now().timestamp()) # 1628400938.312667
3.3、日期时间转化为时间戳
datetime.fromtimestamp(1628400938.312667)
3.3.1、示例
from datetime import datetime
print(datetime.fromtimestamp(1628400938.312667)) # 2021-08-08 13:35:38.312667
3.4、日期时间对象转字符串
datetime.now().strftime('%Y-%m-%d')
3.4.1、示例
from datetime import datetime
print(datetime.now().strftime('%Y-%m-%d')) # 2021-08-08
3.5、字符串转日期时间对象
datetime.strptime(data_str, format)
3.5.1、示例
from datetime import datetime
print(datetime.strptime('2021-8-8 13:42:00', '%Y-%m-%d %H:%M:%S')) # 2021-08-08 13:42:00
4、时间间隔对象
此类用于时间计算!注意:使用时必须是时间对象和timedelta对象进行运算,否则报错。
4.1 示例
import datetime
now = datetime.datetime.now()
a = datetime.timedelta(hours=10, minutes=12, seconds=22)
print(now - a)
print(now + a)
5、获取指定月天数
在python的datetime模块中没有一个月有多少天的方法,但是可以使用calendar模块获得。
import calendar
monthRange = calendar.monthrange(2021, 8)
print(monthRange) # (6, 31)
monthRange可返回两个整数:
- 第一个整数:代表本月起始星期数(0:星期一 ... 6:星期天)。
- 第二个整数:代表本月最后一天的日期数。