前言
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 的日期处理类库
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
The Web Designer's Idea Book
Patrick Mcneil / How / 2008-10-6 / USD 25.00
The Web Designer's Idea Book includes more than 700 websites arranged thematically, so you can find inspiration for layout, color, style and more. Author Patrick McNeil has cataloged more than 5,000 s......一起来看看 《The Web Designer's Idea Book》 这本书的介绍吧!