1、time模块简介
time模块提供各种操作时间的函数
说明:一般有两种表示时间的方式:
第一种是时间戳的方式(相对于1970.1.1 00:00:00以秒计算的偏移量),时间戳是惟一的
第二种以数组的形式表示即(struct_time),共有九个元素,分别表示,同一个时间戳的struct_time会因为时区不同而不同
序号 属性 值 0 tm_year 2008 1 tm_mon 1 到 12 2 tm_mday 1 到 31 3 tm_hour 0 到 23 4 tm_min 0 到 59 5 tm_sec 0 到 61 (60或61 是闰秒) 6 tm_wday 0到6 (0是周一) 7 tm_yday 1 到 366(儒略历) 8 tm_isdst -1, 0, 1, -1是决定是否为夏令时的旗帜
实例:time.time()获取当前系统时间戳
#!/usr/bin/env python # _*_ coding:utf-8 _*_ # Author: enzhi.wang import time # time.time()获取当前时间戳 print(time.time())
以上代码结果为:
C:\Python3.5\python.exe C:/Users/root/PycharmProjects/S14/day4/timemodule/timemod.py 1471504540.8173106
实例:time.ctime()获取当前系统时间
#!/usr/bin/env python # _*_ coding:utf-8 _*_ # Author: enzhi.wang import time # 返回当前系统时间 print(time.ctime())
以上代码结果为:
C:\Python3.5\python.exe C:/Users/root/PycharmProjects/S14/day4/timemodule/timemod.py Thu Aug 18 15:20:26 2016
实例:time.gmtime()
#!/usr/bin/env python # _*_ coding:utf-8 _*_ # Author: enzhi.wang import time # time.gmtime()将一个时间戳转换成一个UTC时区(0时区)的struct_time,如果seconds参数未输入,则以当前时间为转换标准 print(time.gmtime()) time_obj = time.gmtime() # 利用format进行时间拼接 print("{year}-{month}-{day}".format(year=time_obj.tm_year,month=time_obj.tm_mon,day=time_obj.tm_mday))
以上代码结果为:
C:\Python3.5\python.exe C:/Users/root/PycharmProjects/S14/day4/timemodule/timemod.py time.struct_time(tm_year=2016, tm_mon=8, tm_mday=18, tm_hour=7, tm_min=22, tm_sec=34, tm_wday=3, tm_yday=231, tm_isdst=0) 2016-8-18
实例:time.localtime()
#!/usr/bin/env python # _*_ coding:utf-8 _*_ # Author: enzhi.wang import time # time.localtime()将一个时间戳转换成一个当前时区的struct_time,如果seconds参数未输入,则以当前时间为转换标准 print(time.localtime())
以上代码结果为:
C:\Python3.5\python.exe C:/Users/root/PycharmProjects/S14/day4/timemodule/timemod.py time.struct_time(tm_year=2016, tm_mon=8, tm_mday=18, tm_hour=15, tm_min=29, tm_sec=15, tm_wday=3, tm_yday=231, tm_isdst=0)
实例:time.mktime()
#!/usr/bin/env python # _*_ coding:utf-8 _*_ # Author: enzhi.wang import time # Python time.mktime() 函数执行与gmtime(), localtime()相反的操作,它接收struct_time对象作为参数,返回用秒数来表示时间的浮点数。 print(time.mktime(time.localtime()))
以上代码结果为:
C:\Python3.5\python.exe C:/Users/root/PycharmProjects/S14/day4/timemodule/timemod.py 1471505474.0
实例:time.sleep()
#!/usr/bin/env python # _*_ coding:utf-8 _*_ # Author: enzhi.wang import time #time.sleep() 睡眠几秒然后在继续运行 print("----start---->") time.sleep(3) print("----end---->")
实例:time.strftime()
#!/usr/bin/env python # _*_ coding:utf-8 _*_ # Author: enzhi.wang import time # time.strftime(),将指定的struct_time(默认为当前时间),根据指定的格式化字符串输出 current_time = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()) print(current_time)
以上代码结果为:
C:\Python3.5\python.exe C:/Users/root/PycharmProjects/S14/day4/timemodule/timemod.py 2016-08-18 15:33:29
实例:time.strptime()
#!/usr/bin/env python # _*_ coding:utf-8 _*_ # Author: enzhi.wang import time # time.strptime(),将时间字符串根据指定的格式化符转换成数组形式的时间 current_time = time.strptime("2016-08-18 13:34","%Y-%m-%d %H:%M") print(current_time)
以上代码结果为:
C:\Python3.5\python.exe C:/Users/root/PycharmProjects/S14/day4/timemodule/timemod.py time.struct_time(tm_year=2016, tm_mon=8, tm_mday=18, tm_hour=13, tm_min=34, tm_sec=0, tm_wday=3, tm_yday=231, tm_isdst=-1)
2、datetime模块
datetime模块定义了下面这几个类:
- datetime.date:表示日期的类。常用的属性有year, month, day;
- datetime.time:表示时间的类。常用的属性有hour, minute, second, microsecond;
- datetime.datetime:表示日期时间。
- datetime.timedelta:表示时间间隔,即两个时间点之间的长度。
- datetime.tzinfo:与时区有关的相关信息。(这里不详细充分讨论该类,感兴趣的童鞋可以参考python手册)
实例:dastetime.date.today()
#!/usr/bin/env python # _*_ coding:utf-8 _*_ # Author: enzhi.wang import datetime # datetime.date.today(),返回一个表示当前本地日期的date对象 print(datetime.date.today())
以上代码结果为:
C:\Python3.5\python.exe C:/Users/root/PycharmProjects/S14/day4/timemodule/datetime_mod.py 2016-08-18
实例:datetime.datetime.now()
#!/usr/bin/env python # _*_ coding:utf-8 _*_ # Author: enzhi.wang import datetime # datetime.datetime.now()返回一个表示当前本地时间的datetime对象,如果提供了参数tz,则获取tz参数所指时区的本地时间; print(datetime.datetime.now())
以上代码结果为:
C:\Python3.5\python.exe C:/Users/root/PycharmProjects/S14/day4/timemodule/datetime_mod.py 2016-08-18 15:51:27.757108
实例:datetime.timedelta()
#!/usr/bin/env python # _*_ coding:utf-8 _*_ # Author: enzhi.wang import datetime # datetime.timedelta:表示时间间隔,即两个时间点之间的长度 today = datetime.date.today() oneday = datetime.timedelta(days=1) # 获取昨天的时间就用当前的日期减去间隔的天数,获取明天的日期就是+ res = today - oneday print(res)
以上代码结果为:
C:\Python3.5\python.exe C:/Users/root/PycharmProjects/S14/day4/timemodule/datetime_mod.py 2016-08-17
实例:datetime.replace()
#!/usr/bin/env python # _*_ coding:utf-8 _*_ # Author: enzhi.wang import datetime # time.replace 创建一个新的时间对象,用参数指定的时、分、秒、微秒代替原有对象中的属性(原有对象仍保持不变) today = datetime.date.today() print("当前的日期:",today) res = today.replace(2016,8,20) print("替换后的日期:",res) # 也可以对日期进行判断 if res > today: print(True) else: print(False)
以上代码结果为:
C:\Python3.5\python.exe C:/Users/root/PycharmProjects/S14/day4/timemodule/datetime_mod.py 当前的日期: 2016-08-18 替换后的日期: 2016-08-20 True