python笔记:datetime

处理日期和时间

1 常量

MINYEAR

datetime允许的最小年份

python笔记:datetime_第1张图片

MAXYEAR

datetime允许的最大年份

python笔记:datetime_第2张图片

2 数据类型

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)的偏移量

3 timedelta对象

两个date对象、两个time对象、两个datetime对象之间的时间间隔

class datetime.timedelta(days=0, 
                        seconds=0, 
                        microseconds=0, 
                        milliseconds=0, 
                        minutes=0, 
                        hours=0, 
                        weeks=0)

3.1 存储方式

只有 daysseconds 和 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)

4 date对象

代表一个理想化历法中的日期(年、月和日)

4.1 创建date对象

class datetime.date(year, month, day)

4.2 方法

today

python笔记:datetime_第3张图片

fromordinal

公元1年1月1日的序号为1

python笔记:datetime_第4张图片

fromisoformat

根据string获得对应的date对象

python笔记:datetime_第5张图片

fromisocalendar

(yearweekday)

根据指定year,week,day,返回对应的date对象

python笔记:datetime_第6张图片

返回2023年4月份的第一天(从周一开始)

【2023年的第一周是指第一个完整周(周一在2023年的一周)】

replace

date.replace(year=self.yearmonth=self.monthday=self.day)

将replace中对应的参数替换掉

python笔记:datetime_第7张图片

timetuple

返回一个结构化的timetuple

python笔记:datetime_第8张图片

年月日、小时分钟秒、这一周的第几天(从0开始),这一年的第几天(从1开始) 

toordinal

距离公元1年1月1日相隔多少天

python笔记:datetime_第9张图片

weekday

isoweekday

weekday——返回一个整数代表星期几,星期一为0,星期天为6

isoweekday——返回一个整数代表星期几,星期一为1,星期天为7

python笔记:datetime_第10张图片

isocalendar

返回一个由三部分组成的nametuple对象: yearweek 和 weekday(这个方法名带'iso',所以weekday其实是isoweekday,也就是周一为1)

python笔记:datetime_第11张图片

strftime

strftime(string)——以string作为格式的datetime(string格式见后面) 

[string format time]

python笔记:datetime_第12张图片

 4.3 运算

python笔记:datetime_第13张图片

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

5 datetime

5.1 创建datetime对象

class datetime.datetime(
    year, 
    month, 
    day, 
    hour=0, 
    minute=0, 
    second=0, 
    microsecond=0, 
    tzinfo=None, 
    *, 
    fold=0)

5.2 主要方法

today

当前时刻的datetime

python笔记:datetime_第14张图片

now

now(tz=none)

python笔记:datetime_第15张图片

 如果不设置tz参数的话,和today是一样的

utcnow

当前 UTC 时间的 date 和 time

python笔记:datetime_第16张图片

fromordinal

距离公元1年1月1日相隔几天,后面的hour\minute\second等均为0

python笔记:datetime_第17张图片

combine

datetime.combine(datetimetzinfo=self.tzinfo)

返回的内容是date和time的combine结果

fromisocalendar

datetime.fromisocalendar(yearweekday)

返回以year,week和day对应的datetime

python笔记:datetime_第18张图片

date

time

datetime中的date部分和time部分

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)

replace

将指定部分替换

timetuple

utctimetuple

返回一个结构化的timetuple

python笔记:datetime_第19张图片

年月日、小时分钟秒、这一周的第几天(从0开始),这一年的第几天(从1开始) 

utctimetuple——UTC标准时间的timetuple()

toordinal

weekday

isoweekday

isocalendar

 同date对应方法

isoformat

isoformat(sep='T'timespec='auto')

  • YYYY-MM-DDHH:MM:SS.ffffff,如果microsecond不为 0

  • YYYY-MM-DDHH:MM:SS,如果microsecond为 0

python笔记:datetime_第20张图片

strftime

也是得到指定format的datetime string

python笔记:datetime_第21张图片

5.3 运算

类似于date

python笔记:datetime_第22张图片

 6 time对象

datetime对象除去date之后的部分

6.1 构建

datetime.time(
    hour=0, 
    minute=0, 
    second=0, 
    microsecond=0, 
    tzinfo=None, 
    *, 
    fold=0)

6.2 主要方法

replace

isoformat

time.isoformat(timespec='auto')

  • HH:MM:SS.ffffff,如果microsecond不为 0

  • HH:MM:SS,如果microsecond为 0

strftime

7 strftime 和 strptime涉及的format

7.1 strftime和strptime

strftime strptime
用法 根据给定的格式将对象转换为字符串 将字符串解析为给定相应格式的datetime对象
方法类型 实例方法(类的一个实例) 类的方法
使用方式 strftime(format) strptime(date_string, format)

7.2 主要format

%a

星期几的缩写

Sun, Mon, ..., Sat

%A

星期几的完整拼写

Sun, Mon, ..., Sat

%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

以补零后的十进制数表示的一年中的周序号(星期日作为每周的第一天)。 在新的一年中第一个星期日之前的所有日子都被视为是在第 0 周。

00, 01, ..., 53

%W

以补零后的十进制数表示的一年中的周序号(星期一作为每周的第一天)。 在新的一年中第一个星期一之前的所有日子都被视为是在第 0 周

00, 01, ..., 53

%c

本地化的适当日期和时间表示

python笔记:datetime_第23张图片

%x

本地化的适当日期表示

python笔记:datetime_第24张图片

 

 

%X

本地化的适当时间表示

python笔记:datetime_第25张图片

 

参考内容:datetime --- 基本日期和时间类型 — Python 3.11.3 文档

你可能感兴趣的:(笔记)