以不同格式显示日期和时间是程序中最常用到的功能。Python提供了一个处理时间的标准函数库datetime, 它提供了一系列由简单到复杂的时间处理方法。datetime库可以从系统中获得时间,并以用户选择的格式输出。
datetime库以格林威治时间为基础,每天由3600X24秒精准定义。该库包括两个常量: datetime.MINYEAR 与datetime.MAXYEAR,分别表示datetime所能表示的最小、最大年份,值分别为1与9999。
datetime库以类的方式提供多种日期和时间表达方式。
(1) datetime.date: 日期表示类,可以表示年、月、日等。
(2) datetime.time: 时间表示类,可以表示小时、分钟、秒、毫秒等。
(3) datetime datetime:日期和时间表示的类,功能覆盖date和time类。
(4) datetime.timedelta: 与时间间隔有关的类。
(5) datetime.tzinfo: 与时区有关的信息表示类。
由于datetime datetime类表达形式最为丰富,这里主要介绍这个类的使用。使用datetime类需要用import保留字,引用datetime 类的方式如下:
from datetime import datetime
datetime类(datetime .datetime类,以下简称为datetime类)的使用方式是首先创建–个datetime对象,然后通过对象的方法和属性显示时间。创建datetime对象有3种方法: datetime.now()、 datetime.utcnow()和 datetime .datetime()。
作用:返回一个datetime类型,表示当前的日期和时间,精确到微秒。
参数:无
运行如下:
>>> from datetime import datetime
>>> now = datetime.now()
>>> now
datetime.datetime(2020, 4, 26, 8, 41, 57, 927757)
作用:获取当前日期和时间的UTC表示,精确到微秒。
参数:无
运行如下:
>>> now =datetime.utcnow()
>>> now
datetime.datetime(2020, 4, 26, 0, 48, 11, 417383)
datetime (year,month,day,hour=0,minute=0,second=0,microsecond=0)
作用:返回一个datetime类型,表示指定的日期和时间,可以精确到微秒。
参数:
参数 | 解释 |
---|---|
year | 指定的年份 |
month | 指定的月份,在[1,12]之间 |
day | 指定的日期,[1,本月最大日期数] |
hour | 指定的小时,[1,12] |
minute | 指定的分钟数,[0,60] |
second | 指定的秒数,[0,60] |
microsecond | 指定的毫秒数,[0,1000000] |
运行如下:
>>> now =datetime(2020, 4, 26, 0, 48, 11, 417383)
>>> now
datetime.datetime(2020, 4, 26, 0, 48, 11, 417383)
属性 | 描述 |
---|---|
now.min | 固定返回datetime的最小时间对象,datetime(1,1,1,0.0) . |
now.max | 固定返回datetime的最大时间对象,datetime(9999,12,31,23,59,5999999) |
now.year/month/day/hour/minute/second/microsecond | 返回now包含的年/月/日/分/秒/毫秒 |
now.isoformat() | 采用ISO 8601显示时间 |
now.isoweekday() | 根据日期计算星期,返回1~7代表星期一到星期天 |
now.strftime(format) | 根据格式化字符串format进行格式化显示的方法 |
运行如下:
>>> now = datetime(2020,4,26,9,18,59,1)
>>> now.isoformat()
'2020-04-26T09:18:59.000001'
>>> now.isoweekday()
7
>>> now.strftime("%Y-%m-%d %H:%M:%S")
'2020-04-26 09:18:59'
格式化字符串 | 表示 |
---|---|
%Y | 年份 |
%m | 月份 |
%B | 月名(英语) |
%b | 月名缩写 |
%d | 日期 |
%A | 星期 |
%a | 星期缩写 |
%H | 小时(24h制) |
%I | 小时(12h制) |
%p | 上下午 |
%M | 分钟 |
%S | 秒 |
>>> now = datetime(2020,4,26,9,18,59,1)
>>> print("{0:%Y}年{0:%m}月{0:%d}日".format(now))
2020年04月26日
关于时间问题的处理都可以运用datetime库中的相关函数。还可以为一段程序的运行时间计时⏲