文章目录
- class datetime.date
- 输出年月日
- 返回今天日期
- 返回该日期对应星期几
- 返回标准日期格式
- 返回更改了年/月/日的日期
- class datetime.time
- 输出时分秒
- 返回更改了时/分/秒的日期
- class datetime.datetime
- 输出年月日时分秒
- 返回今天日期
- 返回该日期对应星期几
- 返回标准日期格式
- 返回更改了年/月/日/时/分/秒的日期
- strftime() 和 strptime() 的行为
- strftime() 和 strptime() Format Codes
datetime 模块提供用于处理日期和时间的类。 支持五种有效的类型:date,time,datetime,timedelta,tzinfo,timezone,最常用的是前三种
子类关系:
class datetime.date
class datetime.date(year, month, day)
所有参数都是必要的,且参数必须是在下面范围内的整数:
1 <= year <= 9999
1 <= month <= 12
1 <= day <= 给定年月对应的天数
#能输出最小日期
datetime.date.min # 0001-01-01
#能输出最大日期
datetime.date.max # 9999-12-31
如果参数不在这些范围内,则抛出 ValueError 异常。
输出年月日
dt.date(2023,2,3) #2023-02-03
返回今天日期
datetime.date.today()
返回该日期对应星期几
返回数字0-6代表星期一-星期日datetime.date.xxx.isoweekday()
或datetime.date(xxx,xxx,xxx).isoweekday()
返回标准日期格式
YYYY-MM-DD格式datetime.date.xxx.isoformat()
或datetime.date(xxx,xxx,xxx).isoformat()
返回更改了年/月/日的日期
datetime.date.replace(year=self.year, month=self.month, day=self.day)
class datetime.time
datetime.time(hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)
所有参数都是可选的, tzinfo 可以是 None,或者是一个 tzinfo 子类的实例,其余的参数必须是在下面范围内的整数:
0 <= hour < 24
0 <= minute < 60
0 <= second < 60
0 <= microsecond <1000000
fold in [0, 1].
datetime.time.max #23:59:59.999999
datetime.time.max #00:00:00
如果给出一个此范围以外的参数,则会引发 ValueError,所有参数值默认为 0,只有 tzinfo 默认为 None。
输出时分秒
datetime.time(17,53,22) #17:53:22
返回更改了时/分/秒的日期
datetime.time.replace(hour=self.hour, minute=self.minute, second=self.second, microsecond=self.microsecond, tzinfo=self.tzinfo, *, fold=0)
class datetime.datetime
class datetime.datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)
year,month 和 day 参数是必须的,tzinfo 可以是 None 或者是一个 tzinfo 子类的实例。 其余的参数必须是在下面范围内的整数:
MINYEAR <= year <= MAXYEAR,
1 <= month <= 12,
1 <= day <= 指定年月的天数,
0 <= hour < 24,
0 <= minute < 60,
0 <= second < 60,
0 <= microsecond < 1000000,
fold in [0, 1].
datetime.datetime.max # 9999-12-31 23:59:59.999999
datetime.datetime.min # 0001-01-01 00:00:00
如果参数不在这些范围内,则抛出 ValueError 异常。
输出年月日时分秒
print(dt.datetime(2023,2,3,17,59,56)) #2023-02-03 17:59:56
返回今天日期
datetime.datetime.today()
或datetime.datetime.now()
返回该日期对应星期几
返回数字0-6代表星期一-星期日datetime.datetime.xxx.isoweekday()
或datetime.datetime(xxx,xxx,xxx).isoweekday()
返回标准日期格式
YYYY-MM-DD格式datetime.datetime.xxx.isoformat()
或datetime.datetime(xxx,xxx,xxx,xxx,xxx,xxx).isoformat()
返回更改了年/月/日/时/分/秒的日期
datetime.datetime.replace(year=self.year, month=self.month, day=self.day, hour=self.hour, minute=self.minute, second=self.second, microsecond=self.microsecond, tzinfo=self.tzinfo, *, fold=0)
strftime() 和 strptime() 的行为
date,datetime,time 对象都支持 strftime(format) 方法,可用来创建由一个显式格式字符串所控制的表示时间的字符串。
相反地,datetime.strptime() 类会根据表示日期和时间的字符串和相应的格式字符串来创建一个 datetime 对象。
下表提供了 strftime() 与 strptime() 的高层级比较:
strftime() 和 strptime() Format Codes