Python3中关于时间与日期的标准库是time和datetime,calendar是使用日历形式的标准库,random是使用随机数的标准库。今天来简单介绍一下time和datetime这两种常用标准库的用法。
time—时间的访问与转换
# 先来查看一下time的属性和使用方法
>>> import time
>>>a = time
时间可以由9个整数组成的元组表示,给出局部时间。
时间戳: 格林威治时间1970年01月01日00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。
Python中获取时间的常用方法是,先得到时间戳,再将其转换成想要的时间格式。
1、时间元组
元组项包括:
- 年份(包括世纪,如1998年)
- 月(1-12)
- 白昼(1-31)
- 小时(0~23)
- 分钟(0~59)
- 秒(0~59)
- 工作日(0-6,星期一为0)
- 儒略日(一年中的一天,1-366)
- DST(夏令时)标志(-1、0或1)
- 如果DST标志为0,则在常规时区给出时间;如果为1,则在DST时区中给出时间;如果是-1,mktime()应该根据日期和时间进行猜测。
2、格式化时间与日期
格式化时间:
最简单的获取可读的时间模式的函数是asctime()
格式化日期:
可以使用 time 模块的 strftime 方法来格式化日期
python中时间日期格式化符号:
- %y 两位数的年份表示(00-99)
- %Y 四位数的年份表示(000-9999)
- %m 月份(01-12)
- %d 月内中的一天(0-31)
- %H 24小时制小时数(0-23)
- %I 12小时制小时数(01-12)
- %M 分钟数(00=59)
- %S 秒(00-59)
- %a 本地简化星期名称
- %A 本地完整星期名称
- %b 本地简化的月份名称
- %B 本地完整的月份名称
- %c 本地相应的日期表示和时间表示
- %j 年内的一天(001-366)
- %p 本地A.M.或P.M.的等价符
- %U 一年中的星期数(00-53)星期天为星期的开始
- %w 星期(0-6),星期天为星期的开始
- %W 一年中的星期数(00-53)星期一为星期的开始
- %x 本地相应的日期表示
- %X 本地相应的时间表示
- %Z 当前时区的名称
- %% %号本身
import time
print(time.strftime('输入想要的日期格式化符号’,time.localtime())) #就可以获得对应的时间与年份
3、Time模块
Time包含了很多内置函数,有时间处理的,也有转换时间格式的。
内置函数 | 功能 |
---|---|
time.altzone | 返回格林威治西部的夏令时地区的偏移秒数。如果该地区在格林威治东部会返回负值(如西欧,包括英国)。对夏令时启用地区才能使用 |
time.asctime([tupletime]) | 接受时间元组并返回一个可读形式的字符串 |
time.time | 返回当前时间的时间戳 |
time.clock() | 用以浮点数计算的秒数返回当前的CPU时间。用来衡量不同程序的耗时,比time.time()更有用 |
time.gmtime() | 以元组方式返回格林威治时间 |
time.localtime() | 以元组方式返回本地当前时间 |
time.mktime() | 将元组时间转换为时间戳 |
time.timezone | 是当地时区距离格林威治偏移的秒数 |
time.tzname | 输出一个包含一个不包含夏令时的本地时区名称 |
datetime库
datetime可以理解为date和time两个组成部分。date是指年月日构成的日期(相当于日历),time是指时分秒微秒构成的一天24小时中的具体时间(相当于手表)。你可以将这两个分开管理(datetime.date类,datetime.time类),也可以将两者合在一起(datetime.datetime类)。
#例如输入目前时间
import datetime
t = datetime.datetime(2019,5,11,14,11)
print(t)
一、date类
1、datetime库定义了2个常量。
2个常量分别是MINYEAR=1 #返回能表示的最小年份
和MAXYEAR=9999 #返回能表示的最大年份
。
2、date类
date类包含三个参数,分别为year,month,day,返回格式为year-month-day。
date(year,month,day)
3、函数使用
函数 | 用法 |
---|---|
new(year,month,day) | 默认的构造函数,创建date类的对象时直接传入year,month,day三个参数即可返回对应的日期。 |
fromtimestamp(t) | 使用时间戳构造对象,使用方法为:datetime.date.fromtimestamp(t),传入参数t为一个时间戳,返回时间戳t对应的日期。 |
today() | 使用今天的日期构造对象,使用方法为:datetime.date.today(),无参数,返回今天的日期。 |
fromordinal(n) | 使用日期序数构造对象,使用方法为:datetime.date.fromordinal(n),传入参数为一个整数序数,代表从公元1年1月1日开始的序数,序数每增加1代表增加1天,返回最终计算出的日期。 |
timetuple() | 返回日期对应的time.struct_time对象。 |
toordinal() | 相当于fromordinal(n)的逆过程,返回值即为fromordinal(n)中的日期序数n。 |
weekday() | 返回该日期对应星期几,用[0,6]代表星期一到星期日。 |
isoweekday() | 作用同weekday(),用[1,7]代表星期一到星期日。 |
isocalendar() | 返回一个三元组,格式为(year,week_number,weekday),分别代表年,第几周,星期几。 |
isoformat() | 返回标准日期格式。 |
ctime() | 返回格式为:Sat Sep 8 00:00:00 2018 |
strftime(format) | 把日期按照format指定的格式进行格式化。 |
replace(year,month,day) | 传入参数为year,month,day,返回对应的新日期。 |
二、time类
time类由hour小时、minute分钟、second秒、microsecond毫秒和tzinfo五部分组成。
time([hour[, minute[, second[, microsecond[, tzinfo]]]]])
函数使用
函数 | 使用 |
---|---|
new(hour=0, minute=0, second=0, microsecond=0, tzinfo=None, fold=0) | 默认的构造函数,创建time类的对象时直接传入相应参数即可返回对应的时间。 |
isoformat() | 返回标准时间格式:HH:MM:SS.mmmmmm+zz:zz。 |
strftime(format) | 把时间按照format指定的格式进行格式化,具体的格式化符号与date类中介绍的相同。 |
utcoffset() | 返回timezone的偏移量。 |
tzname() | 返回timezone的名称。 |
replace() | 传入对应的参数,返回新的时间。 |