博客
关于我
python datetime
阅读量:796 次
发布时间:2023-03-05

本文共 3189 字,大约阅读时间需要 10 分钟。

Python日期和时间处理

Python中的datetime库是处理日期和时间的标准库,提供了丰富的功能来操作日期和时间信息。它是处理日期和时间的核心工具之一,广泛应用于数据存储、数据分析和系统管理等领域。

获取当前日期和时间

要获取当前的日期和时间,我们可以使用datetime.now()方法。这个方法返回的是一个datetime对象,包含了当前的日期、时间以及毫秒数等详细信息。

>>> from datetime import datetime>>> now = datetime.now() # 获取当前datetime>>> print(now)2015-05-18 16:28:07.198690>>> print(type(now))

需要注意的是,datetime是一个模块,其中包含了一个名为datetime的类。如果你使用from datetime import datetime,那么导入的是这个datetime类。如果只是使用import datetime,那么要使用datetime.datetime来引用这个类。

此外,datetime.now()方法返回的对象类型是datetime,它包含了日期、时间以及时间戳等信息。这个方法没有参数,可以直接获取当前系统时间。

指定日期和时间

如果你需要指定特定的日期和时间,可以直接通过参数构造一个datetime对象。这样可以避免获取当前时间,直接操作指定的时间点。

>>> from datetime import datetime>>> dt = datetime(2015, 4, 19, 12, 20) # 用指定日期时间创建datetime>>> print(dt)2015-04-19 12:20:00

这里,datetime(year, month, day, hour, minute)方法接受年、月、日、小时、分钟等参数,生成对应的datetime对象。需要注意的是,方法参数的顺序是年、月、日、小时、分钟、秒、毫秒等等,具体的参数个数和顺序可以参考官方文档。

日期时间转换为timestamp

在计算机系统中,时间通常以timestamp形式存储。timestamp表示从1970年1月1日 00:00:00 UTC+00:00时刻(也称为Unix epoch)开始的秒数。这个值可以用于跨平台和跨语言的时间存储和传输,因为timestamp不依赖于时区信息。

datetime对象转换为timestamp非常简单,只需要调用timestamp()方法即可。这个方法返回的是一个浮点数,包含毫秒的信息。

>>> from datetime import datetime>>> dt = datetime(2015, 4, 19, 12, 20) # 用指定日期时间创建datetime>>> dt.timestamp() # 把datetime转换为timestamp1429417200.0

需要注意的是,Python的timestamp是浮点数类型。由于浮点数的精度问题,timestamp的值会包含小数部分,这个小数部分表示毫秒数。在其他一些编程语言(如Java和JavaScript)中,timestamp通常是整数形式,表示毫秒数。因此,在这些语言中,如果需要与Python进行数据交换,需要把timestamp除以1000来获取整数毫秒值。

timestamp转换为datetime

要将timestamp转换回datetime对象,可以使用datetime.fromtimestamp()方法。这个方法接受一个浮点数或整数参数,返回对应时间点的datetime对象。

>>> from datetime import datetime>>> t = 1429417200.0>>> print(datetime.fromtimestamp(t))2015-04-19 12:20:00

需要注意的是,fromtimestamp()方法的参数是本地时间的timestamp。也就是说,转换后的datetime对象的时间是基于操作系统当前设置的时区的。因此,如果你是在不同的时区运行这个代码,结果可能会有所不同。

str转换为datetime

在实际应用中,日期和时间通常以字符串格式输入。要将这些字符串转换为datetime对象,可以使用datetime.strptime()方法。这个方法需要一个格式化字符串,指定日期和时间的格式。

>>> from datetime import datetime>>> cday = datetime.strptime('2015-6-1 18:19:59', '%Y-%m-%d %H:%M:%S')>>> print(cday)2015-06-01 18:19:59

在这个例子中,字符串'%Y-%m-%d %H:%M:%S'指定了日期和时间的格式。%Y表示四位年份,%m表示两位月份,%d表示两位日期,%H表示24小时制的小时,%M表示分钟。其他常见的格式字符包括:%A(星期几)、%B(全名月份)、%e(简化月份)、%f(毫秒数)等。

需要注意的是,使用strptime()方法时,如果字符串格式不正确,会抛出ValueError错误。因此,在实际应用中,需要确保输入的字符串严格符合指定的格式。

datetime转换为str

如果你已经有了datetime对象,想要将其格式化为字符串,可以使用strftime()方法。这个方法同样需要一个格式化字符串,指定输出字符串的格式。

>>> from datetime import datetime>>> now = datetime.now()>>> print(now.strftime('%a, %b %d %H:%M'))Mon, May 05 16:28

在这个例子中,strftime('%a, %b %d %H:%M')方法返回的是一个带有简写星期几、简化月份和日期的字符串。%a表示简写星期几(如Mon、Tue等),%b表示简化的月份(如May)、%d表示两位日期,%H表示24小时制的小时,%M表示分钟。

datetime加减

对日期和时间进行加减运算,可以通过timedelta类来实现。timedelta类表示时间间隔,可以是天、小时、分钟、秒等单位。通过使用+-运算符,可以对datetime对象进行加减操作。

>>> from datetime import datetime, timedelta>>> now = datetime.now()>>> now + timedelta(hours=10)datetime.datetime(2015, 5, 19, 2, 57, 3, 540997)>>> now - timedelta(days=1)datetime.datetime(2015, 5, 17, 16, 57, 3, 540997)>>> now + timedelta(days=2, hours=12)datetime.datetime(2015, 5, 21, 4, 57, 3, 540997)

在这个例子中,timedelta(hours=10)表示10小时的时间间隔,timedelta(days=2, hours=12)表示2天12小时的时间间隔。通过加减这些timedelta对象,可以轻松地计算出特定时间点。

小结

综上所述,datetime库提供了从获取、处理到转换的全套解决方案,适用于处理各种日期和时间相关的任务。通过合理使用这些功能,可以实现日期和时间的精确操作和转换,从而提升开发效率和用户体验。

转载地址:http://ytafk.baihongyu.com/

你可能感兴趣的文章
PyQt4, class:mouseButtons用法
查看>>
PyQt4参考文档
查看>>
PyTorch Lightning:通过分布式训练扩展深度学习工作流
查看>>
PyQt5 - QThread:在线程仍在运行时被销毁
查看>>
PyQt5 - 如何从工作线程发出信号以通过 GUI 线程调用事件
查看>>
PyQt5 Designer 不工作:此应用程序无法启动,因为无法初始化 Qt 平台插件
查看>>
PyQt5 QLCNumber 没有更新
查看>>
PyQt5 TabWidget选项卡BarClicked TypeError:本机Qt信号不可调用
查看>>
PyQt5 从 PyQt4 转换信号代码
查看>>
PyQt5 和 asyncio:从永不完成的收益
查看>>
PyQt5 和 Django:如何使用 HTTP 请求(Multipart-form)上传图像?
查看>>
PyQt5 按钮运行功能和更新 LCD
查看>>
pyqt5 获取Qlabel中的图片并对其进行处理(包括Qimage转换为Mat)
查看>>
pyqt5 设置控件在最上层或者在下层
查看>>
pyqt5 设置网格布局的间距
查看>>
pyTorch Hub 系列#4:PGAN — GAN 模型
查看>>
PyQt5-基本窗口控件-QMainWindow
查看>>
PyQt5:如何安装/运行 Qt 设计器
查看>>
PyQt5——pyqtgraph绘图大招
查看>>
PyQt5——多窗口之间数据处理
查看>>