处理日期和时间
MINYEAR |
datetime允许的最小年份 |
MAXYEAR | datetime允许的最大年份 |
datetime.date | 带有属性year,month,day |
datetime.time | 带有属性hour,minute,second,microsecond,tzinfo |
datetime.datetime | 带有属性year,month,day,hour,minute,second,microsecond,tzinfo |
datetime.timedelta | 两个date对象、两个time对象、两个datetime对象之间的时间间隔 |
datetime.tzinfo | 描述时区信息对象的抽象基类 |
datetime.timezone | 实现了datetime.tzinfo抽象基类的子类,用于表示相对于 世界标准时间(UTC)的偏移量 |
两个date对象、两个time对象、两个datetime对象之间的时间间隔
class datetime.timedelta(days=0,
seconds=0,
microseconds=0,
milliseconds=0,
minutes=0,
hours=0,
weeks=0)
只有 days, seconds 和 microseconds 会存储在内部。 其他的参数在存储时会进行如下的转换:
1毫秒会转换成1000微秒。
1分钟会转换成60秒。
1小时会转换成3600秒。
1星期会转换成7天。
from datetime import timedelta
delta=timedelta(
days=50,
seconds=27,
microseconds=10,
milliseconds=29000,
minutes=5,
hours=8,
weeks=2)
delta
#datetime.timedelta(days=64, seconds=29156, microseconds=10)
代表一个理想化历法中的日期(年、月和日)
class datetime.date(year, month, day)
from datetime import timedelta
td=timedelta(days=10,weeks=2)
from datetime import date
d1=date(2023,4,1)
d2=date(2023,4,15)
d1+td,d1-td
#(datetime.date(2023, 4, 25), datetime.date(2023, 3, 8))
d1-d2,d1
class datetime.datetime(
year,
month,
day,
hour=0,
minute=0,
second=0,
microsecond=0,
tzinfo=None,
*,
fold=0)
today |
当前时刻的datetime |
now |
now(tz=none) 如果不设置tz参数的话,和today是一样的 |
utcnow |
当前 UTC 时间的 date 和 time |
fromordinal |
距离公元1年1月1日相隔几天,后面的hour\minute\second等均为0 |
combine |
datetime.combine(date, time, tzinfo=self.tzinfo) 返回的内容是date和time的combine结果 |
fromisocalendar |
datetime.fromisocalendar(year, week, day) 返回以year,week和day对应的datetime |
datetime |
datetime中的date部分和time部分 |
replace |
将指定部分替换 |
timetupleutctimetuple |
返回一个结构化的timetuple 年月日、小时分钟秒、这一周的第几天(从0开始),这一年的第几天(从1开始) utctimetuple——UTC标准时间的timetuple() |
toordinalweekdayisoweekdayisocalendar |
同date对应方法 |
isoformat |
isoformat(sep='T', timespec='auto')
|
strftime |
也是得到指定format的datetime string |
类似于date
datetime对象除去date之后的部分
datetime.time(
hour=0,
minute=0,
second=0,
microsecond=0,
tzinfo=None,
*,
fold=0)
replace |
|
isoformat |
time.isoformat(timespec='auto')
|
strftime |
strftime | strptime | |
用法 | 根据给定的格式将对象转换为字符串 | 将字符串解析为给定相应格式的datetime对象 |
方法类型 | 实例方法(类的一个实例) | 类的方法 |
使用方式 | strftime(format) | strptime(date_string, format) |
%a | 星期几的缩写
|
|
%A | 星期几的完整拼写
|
|
%w | 以十进制数显示的工作日,其中0表示星期日,6表示星期六 0, 1, ..., 6 |
|
%d | 补零后,以十进制数显示的月份中的一天 01, 02, ..., 31 |
|
%b | 月份的缩写 Jan, Feb, ..., Dec |
|
%B | 月份的全拼 January, February, ..., December |
|
%m | 补零后,以十进制数显示的月份 01, 02, ..., 12 |
|
%y | 补零后,以十进制数表示的,不带世纪的年份。 00, 01, ..., 99 |
|
%Y | 十进制数表示的带世纪的年份 0001, 0002, ..., 2013, 2014, ..., 9998, 9999 |
|
%H | 以补零后的十进制数表示的小时(24 小时制) 00, 01, ..., 23 |
|
%I | 以补零后的十进制数表示的小时(12 小时制) 01, 02, ..., 12 |
|
%p | 本地化的 AM 或 PM AM, PM |
|
%M | 补零后,以十进制数显示的分钟 00, 01, ..., 59 |
|
%S | 补零后,以十进制数显示的秒 00, 01, ..., 59 |
|
%Z | 时区名称 | |
%j | 以补零后的十进制数表示的一年中的日序号 001, 002, ..., 366 |
|
%U |
|
|
%W | 以补零后的十进制数表示的一年中的周序号(星期一作为每周的第一天)。 在新的一年中第一个星期一之前的所有日子都被视为是在第 0 周 00, 01, ..., 53 |
|
%c | 本地化的适当日期和时间表示 |
|
%x | 本地化的适当日期表示
|
|
%X | 本地化的适当时间表示 |
参考内容:datetime --- 基本日期和时间类型 — Python 3.11.3 文档