前言
datetime
是 python 的内置模块,用来处理日期和时间。
该模块常用的类有:
类名 | 功能说明 |
---|---|
date | 日期对象 |
time | 时间对象 |
datetime | 日期时间对象 |
timedelta | 时间间隔 |
tzinfo | 时区信息对象 |
datetime
模块中
datetime
类的使用方法。
datetime
对象是 date 与 time 的结合体,涵盖了
date
和
time
对象的所有信息。
一、导入 datetime
类
第一步,先导入 datetime
类:
from datetime import datetime
二、构造 datetime
对象
datetime(year,month,day,hour=0, minute=0, second=0, microsecond=0, tzinfo=None)
参数范围:
-
MINYEAR <= year <= MAXYEAR
-
1 <= month <= 12
-
1 <= day <= 指定年月的天数
-
0 <= hour < 24
-
0 <= minute < 60
-
0 <= second < 60
-
0 <= microsecond < 1000000
实例:
datetime(2019,12,6,13,30,50) # 输出 : datetime.datetime(2019, 12, 6, 13, 30, 50)
三、类方法
-
datetime.today()
返回本地区当前日期时间 datetime
对象
datetime.today() # 输出 : datetime.datetime(2019, 12, 9, 13, 27, 54, 693978)
-
datetime.now(tz=None)
返回本地区当前日期时间 datetime
对象,可以添加时区tz
默认无时区时,返回结果和 datetime.today()
一致
datetime.now() # 输出 : datetime.datetime(2019, 12, 9, 13, 27, 54, 693978)
-
datetime.utcnow()
返回UTC(同格林尼治时间)日期时间 datetime
对象
datetime.now() # 输出 : datetime.datetime(2019, 12, 9, 13, 27, 54, 693978)
-
datetime.fromtimestamp(timestamp, tz=None)
返回给定时间戳的 datetime
对象,时区默认为空,返回当地日期时间,也可以指定时区
datetime.fromtimestamp(1575877756) # 输出 : datetime.datetime(2019, 12, 9, 15, 49, 16)
想获取当前时间戳,可通过 time
模块的 time
方法实现:
import time time.time() # 输出:1575877756.4673727
-
datetime.utcfromtimestamp(timestamp)
返回给定时间戳的 datetime
对象,日期时间默认为UTC(同格林尼治时间)
datetime.fromtimestamp(1575877756) # 输出 : datetime.datetime(2019, 12, 9, 7, 49, 16)
-
datetime.fromordinal(ordinal)
输入参数为天数,返回从公元0年开始计数的年、月、日 datetime
对象
比如输入参数为365,则返回1-12-31
datetime.fromordinal(365) # 输出 : datetime.datetime(1, 12, 31, 0, 0)
-
datetime.combine(date, time, tzinfo=self.tzinfo)
拼接 date
和 time
对象,形成一个新的 datetime
对象
可以输入时区参数,否则默认为原 time
的时区
date_ = datetime.today().date() time_ = datetime.today().time() datetime.combine(date_,time_) # 输出 : datetime.datetime(2019, 12, 9, 16, 12, 56, 914484)
-
datetime.strptime(date_string, format)
将格式化日期时间字符串,转换为 datetime
对象,可以转换日期、时间、日期时间
datetime.strptime('2019-11-05','%Y-%m-%d') # 输出 : datetime.datetime(2019, 11, 5, 0, 0) datetime.strptime('09:30:50','%H:%M:%S') # 输出 : datetime.datetime(1900, 1, 1, 9, 30, 50) datetime.strptime('2019-11-05 09:30:50','%Y-%m-%d %H:%M:%S') # 输出 : datetime.datetime(2019, 11, 5, 9, 30, 50)
四、实例方法
-
datetime.date()
返回 date
对象
d = datetime(2019,12,6,13,30,50) d.date() # 输出 : datetime.date(2019, 12, 6)
-
datetime.time()
返回 time
对象
d = datetime(2019,12,6,13,30,50) d.time() # 输出 : datetime.time(13, 30, 50)
-
datetime.timestamp()
对于给定的 datetime
对象返回时间戳
d = datetime(2019,12,6,13,30,50) d.timestamp() # 输出 : 1575610250.0
-
datetime.weekday()
返回星期几,星期一为 0,星期天为 6
d = datetime(2019,12,6,13,30,50) d.weekday() # 输出 : 4
-
datetime.isoweekday()
返回星期几,星期一为 1,星期天为 7
d = datetime(2019,12,6,13,30,50) d.isoweekday() # 输出 : 5
-
datetime.isocalendar()
返回数组:(年、第多少周、星期几)
d = datetime(2019,12,6,13,30,50) d.isocalendar() # 输出 : (2019, 49, 5)
-
datetime.ctime()
返回日期时间的字符串表示
d = datetime(2019,12,6,13,30,50) d.ctime() # 输出 : 'Fri Dec 6 13:30:50 2019'
-
datetime.strftime(date_string, format)
将 datetime
对象转换为格式化字符串
d = datetime.today() datetime.strftime(d,'%Y-%m-%d %H:%M:%S') # 输出 : '2019-12-09 16:32:18'
-
datetime.toordinal()
返回从公元0年到指定 datetime
的天数
d = datetime(2019,12,6,13,30,50) d.toordinal() # 输出 : 737399
五、类实例属性
-
datetime.year
返回给定 datetime
对象的年份
d = datetime(2019,12,6,13,30,50) d.year # 输出 : 2019
-
datetime.month
返回给定 datetime
对象的月份
d = datetime(2019,12,6,13,30,50) d.month # 输出 : 12
-
datetime.day
返回给定 datetime
对象的天数(一个月的某天)
d = datetime(2019,12,6,13,30,50) d.day # 输出 : 6
-
datetime.hour
返回给定 datetime
对象的小时数(一天的某时)
d = datetime(2019,12,6,13,30,50) d.hour # 输出 : 13
-
datetime.minute
返回给定 datetime
对象的分钟数(一小时的某分)
d = datetime(2019,12,6,13,30,50) d.minute # 输出 : 30
-
datetime.second
返回给定 datetime
对象的秒数(一分钟的某秒)
d = datetime(2019,12,6,13,30,50) d.second # 输出 : 50
-
datetime.microsecond
返回给定 datetime
对象的毫秒数(一分钟的某秒)
d = datetime(2019,12,6,13,30,50,3000) d.microsecond # 输出 : 3000
-
datetime.tzinfo
返回 datetime
对象的时区,前提是在创建 datetime
对象时需传入 tzinfo
参数,如果没有传入则返回值为 None
。
# 获取一个含有时区的datetime对象 import pytz sh = pytz.timezone('Asia/Shanghai') d = datetime(2018, 11, 1, hour=8, tzinfo=sh) d.tzinfo # 输出 : <DstTzInfo 'Asia/Shanghai' LMT+8:06:00 STD>
参考:https://www.jianshu.com/p/7beff16c379d
六、结论
本文介绍了 datetime
模块中 datetime
类的各种方法和属性,代码案例丰富,分门别类,方便使用时查找。
精彩回顾
以上所述就是小编给大家介绍的《30例 | 一文搞懂python日期时间处理》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Python 常用日期处理
- Python入门 —— 05时间日期处理小结
- Python日期和时间的处理类datetime
- Python 常用日期处理 -- calendar 与 dateutil 模块
- python2.7 json 转换日期的处理的示例
- Carbon 2.7.0 发布,PHP 的日期处理类库
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
UNIX环境高级编程(第3版)
史蒂文斯 (W.Richard Stevens)、拉戈 (Stephen A.Rago) / 戚正伟、张亚英、尤晋元 / 人民邮电出版社 / 2014-6-1 / 128.00元
《UNIX环境高级编程(第3版)》是被誉为UNIX编程“圣经”的Advanced Programming in the UNIX Environment一书的第3版。在本书第2版出版后的8年中,UNIX行业发生了巨大的变化,特别是影响UNIX编程接口的有关标准变化很大。本书在保持前一版风格的基础上,根据最新的标准对内容进行了修订和增补,反映了最新的技术发展。书中除了介绍UNIX文件和目录、标准I/......一起来看看 《UNIX环境高级编程(第3版)》 这本书的介绍吧!