python笔记:datetime

news/2024/11/30 9:37:11/

处理日期和时间

1 常量

MINYEAR

datetime允许的最小年份

MAXYEAR

datetime允许的最大年份

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

fromordinal

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

fromisoformat

根据string获得对应的date对象

fromisocalendar

(yearweekday)

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

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

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

replace

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

将replace中对应的参数替换掉

timetuple

返回一个结构化的timetuple

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

toordinal

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

weekday

isoweekday

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

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

isocalendar

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

strftime

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

[string format time]

 4.3 运算

from datetime import timedeltatd=timedelta(days=10,weeks=2)from datetime import dated1=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<d2
#(datetime.timedelta(days=-14), True)

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

now

now(tz=none)

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

utcnow

当前 UTC 时间的 date 和 time

fromordinal

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

combine

datetime.combine(datetimetzinfo=self.tzinfo)

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

fromisocalendar

datetime.fromisocalendar(yearweekday)

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

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

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

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

toordinal

weekday

isoweekday

isocalendar

 同date对应方法

isoformat

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

  • YYYY-MM-DD<sep>HH:MM:SS.ffffff,如果microsecond不为 0

  • YYYY-MM-DD<sep>HH:MM:SS,如果microsecond为 0

strftime

也是得到指定format的datetime string

5.3 运算

类似于date

 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

strftimestrptime
用法根据给定的格式将对象转换为字符串将字符串解析为给定相应格式的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

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

%x

本地化的适当日期表示

 

 

%X

本地化的适当时间表示

 

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


http://www.ppmy.cn/news/47563.html

相关文章

22勤于思考:gRPC都有哪些优势和不足?

如果你能从专栏的开篇词开始读到这篇文章并且能够在过程中认真思考,那么我相信你目前已经能够对gRPC有了较为充分了解。在专栏的最后几节中,我们抽出一篇文章。来探讨一下gRPC有哪些优势和不足,因为只有这样我们才能取其精华,去其糟粕,学习gRPC框架设计的优点,还能反观出…

Nacos服务端健康检查-篇五

Nacos服务端健康检查-篇五 &#x1f550;Nacos 客户端服务注册源码分析-篇一 &#x1f551;Nacos 客户端服务注册源码分析-篇二 &#x1f552;Nacos 客户端服务注册源码分析-篇三 &#x1f553;Nacos 服务端服务注册源码分析-篇四 上篇分析l服务端的注册服务的整个流程&…

大四的告诫

&#x1f442; LOCK OUT - $atori Zoom/KALONO - 单曲 - 网易云音乐 &#x1f442; 喝了一口星光酒&#xff08;我只想爱爱爱爱你一万年&#xff09; - 木小雅 - 单曲 - 网易云音乐 其实不是很希望这篇文章火&#xff0c;不然就更卷了。。 从大一开始&#xff0c;每天10小时…

mysql 事务的 ACID 特征与使用

事务的四大特征&#xff1a; A 原子性&#xff1a;事务是最小的单位&#xff0c;不可以再分割&#xff1b;C 一致性&#xff1a;要求同一事务中的 SQL 语句&#xff0c;必须保证同时成功或者失败&#xff1b;I 隔离性&#xff1a;事务1 和 事务2 之间是具有隔离性的&#xff1…

【性能测试】5年测试老鸟,总结性能测试基础到指标,进阶性能测试专项......

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 性能测试是为了评…

软文推广:真实有效提升软文排名与收录的三大方法!

软文是一种具有良好传播效果的文体&#xff0c;可以通过在搜索引擎中排名靠前的方式&#xff0c;为品牌或企业带来更多曝光。但是&#xff0c;如何让软文在搜索引擎中得到更好的收录和排名呢&#xff1f;在本文中&#xff0c;我们将讨论如何提升软文的收录和排名&#xff0c;以…

Unity记录3.4-地图-柏林噪声生成 1D 地图及过渡地图

文章首发及后续更新&#xff1a;https://mwhls.top/4489.html&#xff0c;无图/无目录/格式错误/更多相关请至首发页查看。 新的更新内容请到mwhls.top查看。 欢迎提出任何疑问及批评&#xff0c;非常感谢&#xff01; 汇总&#xff1a;Unity 记录 摘要&#xff1a;柏林噪声生成…

深入理解栈:从CPU和函数的视角看栈的管理、从栈切换的角度理解进程和协程

我们知道栈被操作系统安排在进程的高地址处&#xff0c;它是向下增长的。但这只是对栈相关知识的“浅尝辄止”。栈是每一个程序员都很熟悉的话题&#xff0c;但你敢说你真的完全了解它吗&#xff1f;我相信&#xff0c;你在工作中肯定遇到过栈溢出&#xff08;StackOverflow&am…