智一面的面试题提供python的测试题
1、datetime模块
datatime模块是在time模块的基础之上做了封装,提供了更多更好用的类供我们使用,常用的有date、time、datetime、timedelta、tzinfo。但是为了更灵活的处理时间,最好是将time模块和datetime模块中的精髓学习到。
① date类:主要用于处理年、月、日;
② time类:主要用于处理时、分、秒;
③ datetime类:date类和time类的综合使用,可以处理年、月、日、时、分、秒;
④ timedelta类:主要用于做时间加减的;
⑤ tzinfo类:时区类;
注意:tzinfo类用的不多,也就不专门讲述了,如果有需要,可以自行学习。
2、datetime类
1)静态方法和属性:可以直接通过类名调用;
datetime.min:datetime类所能表示的最小时间。
datetime.max:datetime类所能表示的最大时间。
datetime.resolution:datetime类表示时间的最小单位,这里是1微秒;
datetime.today():返回一个表示当前本地时间的datetime对象;
datetime.now():返回一个表示当前本地时间的datetime对象,如果提供了参数tz,则获取tz参数所指时区的本地时间;
datetime.utcnow():返回一个当前utc时间的datetime对象;#格林威治时间
datetime.fromtimestamp(timestamp):根据时间戮创建一个datetime对象,参数tz指定时区信息;
datetime.utcfromtimestamp(timestamp):根据时间戮创建一个datetime对象;
datetime.combine(date,time):根据datez对象和time对象,创建一个datetime对象;
datetime.strptime(date_string,format):将格式字符串转换为datetime对象;
① 静态属性
from datetime import *
datetime.min
datetime.max
datetime.resolution
结果如下:
② 静态方法
Ⅰ 返回当前时间 或 UTC时间的datetime对象;
from datetime import *
datetime.today()
datetime.now()
datetime.utcnow()
结果如下:
Ⅱ 传入时间戳,返回本地时间 或 UTC时间的datetime对象;
from datetime import *
import time
datetime.fromtimestamp(time.time())
datetime.utcfromtimestamp(time.time())
结果如下:
Ⅲ 合并date类对象,和time类对象,创建一个datetime类对象;
# 注意一个问题:当使用了time()函数,就不要使用import time这句代码;
from datetime import *
date_x = date(2015,11,11)
time_y = time(23,59,59)
datetime.combine(date_x,time_y)
结果如下:
Ⅳ 利用任意一个时间字符串,创建一个datetime对象;
from datetime import *
datetime.strptime("2019,12,12","%Y,%m,%d")
datetime.strptime("2019,11,11 23:59:59","%Y,%m,%d %H:%M:%S")
结果如下:
2)其它常用方法和属性:通过datetime对象才能调用;
"属性"
dt.year、dt.month、dt.day:获取年、月、日;
dt.hour、dt.minute、dt.second、dt.microsecond:获取时、分、秒、微秒;
"方法"
dt.date():获取date对象;
dt.time():获取time对象;
dt.replace():传入指定的year或month或day或hour或minute或second或microsecond,生成一个新日期datetime对象,但不改变原有的datetime对象;
dt.timetuple():返回时间元组struct_time格式的日期;
dt.utctimetuple():返回时间元组struct_time格式的日期; # 这个没什么用
dt.toordinal():返回1年1月1日开始至今的天数; # 了解就行,用处不大
dt.weekday():返回weekday,如果是星期一,返回0;如果是星期2,返回1,以此类推;
dt.isoweekday():返回weekday,如果是星期一,返回1;如果是星期2,返回2,以此类推;
dt.isocalendar():返回(year,week,weekday)格式的元组;
dt.isoformat():返回固定格式如'YYYY-MM-DD HH:MM:SS’的字符串;
dt.ctime():返回一个日期时间的C格式字符串,等效于time.ctime(time.mktime(dt.timetuple())); # 了解就行,用处不大
dt.strftime(format):传入任意格式符,可以输出任意格式的日期表示形式。
先构造一个date对象:
from datetime import *
dt = datetime.fromtimestamp(1334567890)
display(dt)
结果如下:
① dt.year、dt.month、dt.day:获取年、月、日;
dt.hour、dt.minute、dt.second、dt.microsecond:获取时、分、秒、微秒;
dt = datetime.fromtimestamp(1334567890)
display(dt)
display(dt.year,dt.month,dt.day)
display(dt.hour,dt.minute,dt.second,dt.microsecond)
结果如下:
② dt.date():获取date对象;
dt.time():获取time对象;
dt = datetime.fromtimestamp(1334567890)
display(dt)
display(dt.date())
display(dt.time())
结果如下:
注意:当获取到date对象和time对象后,就可以分别调用date类和time类中的属性和方法了。
③ dt.replace(year=,month=,day=,hour=,minute=,second=,microsecond=):传入指定的year或month或day或hour或minute或second或microsecond,生成一个新日期datetime对象,但不改变原有的datetime对象;
dt = datetime.fromtimestamp(1334567890)
display(dt)
z = dt.replace(year=2015,month=12,hour=22,minute=59)
display(z)
display(d)
结果如下:
注意:你可以传入year或month或day或hour或minute或second或microsecond中,任意一个或多个值,将其对应的值进行修改后返回。
④ dt.timetuple():返回时间元组struct_time格式的日期(本地时间);
dt.utctimetuple():返回时间元组struct_time格式的日期(UTC时间);
dt = datetime.fromtimestamp(1334567890)
display(dt)
display(dt.timetuple())
display(dt.utctimetuple())
结果如下:
⑤ dt.toordinal():返回1年1月1日开始至今的天数。
dt = datetime.fromtimestamp(1334567890)
display(dt)
display(dt.toordinal())
结果如下:
⑥ dt.weekday()和dt.isoweekday():在中国,主要以dt.isoweekday()的使用为主;
dt.weekday():返回weekday,如果是星期一,返回0;如果是星期2,返回1,以此类推;
dt.isoweekday():返回weekday,如果是星期一,返回1;如果是星期2,返回2,以此类推;
dt = datetime.fromtimestamp(1334567890)
display(dt)
display(dt.weekday())
display(dt.isoweekday())
结果如下:
⑦ dt.isocalendar():返回(year,week,weekday)格式的元组;
year:表示当前日期的年份;
week:表示当前日期是一年中的第几周;
weekday:表示当前日期是星期几;
dt = datetime.fromtimestamp(1334567890)
display(dt)
display(dt.isocalendar())
结果如下:
注意:dt.isocalendar()函数的返回值较为特殊,需要特别注意。
⑧ dt.isoformat():返回固定格式如’YYYY-MM-DDTHH:MM:SS’的字符串;
dt = datetime.fromtimestamp(1334567890)
display(dt)
display(dt.isoformat())
display(dt.isoformat().split("T"))
结果如下:
⑨ dt.ctime():了解就行,此函数用处不大;
dt = datetime.fromtimestamp(1334567890)
display(dt)
display(dt.ctime())
结果如下:
⑩ dt.strftime(format):传入任意格式符,可以输出任意格式的日期表示形式;
常用的格式符如下所示:
操作如下:
dt = datetime.fromtimestamp(1334567890)
display(dt)
dt = dt.strftime("%Y{y}%m{m}%d{d} %H{H}%M{M}%S{S}").format(y="年",m="月",d="日",H="时",M="分",S="秒")
display(dt)
结果如下: