本文实例讲述了python3.5内置模块之time与datetime模块用法。分享给大家供大家参考,具体如下:
1、模块的分类
a、标准库(python自带):sys、os模块
b、开源模块(第三方模块)
c、自定义模块
2、内建模块——time
(1)在python中通常用以下几种方式来表示时间:
a、时间戳:从1970年1月1日开始到当下的时间的秒数,导入time模块(import time),调用time.time()方法即可。
b、格式化的时间字符串。
c、元组(struct_time),共九个元素,调用time.localtime()。
由于python的time模块实现主要调用c库,各个平台可能有所不同。
(2)代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
#!/usr/bin/env python # -*- coding:utf-8 -*- # author:zhengzhengliu import time print (time.time()) #获取时间戳 time.sleep( 2 ) #睡2秒 print (time.time()) #获取时间戳 print (time.gmtime()) #获取当前世界标准时间utc print (time.localtime()) #获取当前本地时间 print (time.localtime( 1234567890 )) #将时间戳转换成元组形式 x = time.localtime() print (x.tm_year) #获取本地时间的年份 print ( "this is 2017 day:%d" % x.tm_yday) print (time.mktime(x)) #将元组形式转换成时间戳 #将struct_time转化成格式化字符串的形式 #print(time.strftime("%y-%m-%d %h:%m:%s"),x) print (time.strftime( "%y-%m-%d %h:%m:%s" ),time.localtime()) # %y:x.tm_year %m:x.tm_mon 顺序可以打乱 #将格式化字符串的形式转化成struct_time print (time.strptime( "2017-09-28 19:00:47" , "%y-%m-%d %h:%m:%s" )) #x.tm_year:2017,x.tm_mon:09 位置顺序必须一一对应 print (time.asctime()) #结构化的元组形式转换成形如:周月日时分秒年的形式 print (time.ctime()) #将时间戳转化成形如:周月日时分秒年的形式 |
运行结果:
1506598454.9637923
1506598456.9639068
time.struct_time(tm_year=2017, tm_mon=9, tm_mday=28, tm_hour=11, tm_min=34, tm_sec=16, tm_wday=3, tm_yday=271, tm_isdst=0)
time.struct_time(tm_year=2017, tm_mon=9, tm_mday=28, tm_hour=19, tm_min=34, tm_sec=16, tm_wday=3, tm_yday=271, tm_isdst=0)
time.struct_time(tm_year=2009, tm_mon=2, tm_mday=14, tm_hour=7, tm_min=31, tm_sec=30, tm_wday=5, tm_yday=45, tm_isdst=0)
2017
this is 2017 day:271
1506598456.0
2017-09-28 19:34:16 time.struct_time(tm_year=2017, tm_mon=9, tm_mday=28, tm_hour=19, tm_min=34, tm_sec=16, tm_wday=3, tm_yday=271, tm_isdst=0)
time.struct_time(tm_year=2017, tm_mon=9, tm_mday=28, tm_hour=19, tm_min=0, tm_sec=47, tm_wday=3, tm_yday=271, tm_isdst=-1)
thu sep 28 19:34:17 2017
thu sep 28 19:34:17 2017
(3)几种表示时间的相互转化
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
#!/usr/bin/env python # -*- coding:utf-8 -*- # author:zhengzhengliu import time #导入时间模块 #1.返回当前时间戳 t = time.time() print ( "current time:" ,t) #2.将时间戳转换成当地时间的时间元祖 tup1 = time.localtime(t) print (tup1) #年:tm_year,月:tm_mon,日:tm_mday print ( "年份:" ,tup1.tm_year) print ( "月份:" ,tup1.tm_mon) print ( "日期:" ,tup1.tm_mday) #3.将时间元组转换为时间戳(毫秒会忽略) print ( "timestamp is:" ,time.mktime(tup1)) #4.0 获取cpu运行时间来获取比较精准的秒数,一般用于时间间隔的获取或比较 #4.1 休眠/停止一段时间,指定需要停止的秒数 print ( "开始时间:" ,time.clock()) time.sleep( 3 ) print ( "结束时间1:" ,time.clock()) time.sleep( 3 ) print ( "结束时间2:" ,time.clock()) #5.时间元组转化成格式化时间字符串 tm_str = time.strftime( "%y-%m-%d %h:%m:%s" ,tup1) print ( "格式化时间字符串:" ,tm_str) #等价于 print ( "格式化时间字符串:" ,time.strftime( "%y-%m-%d %h:%m:%s" ,tup1)) #6.格式化时间字符串转化成时间元组 tup2 = time.strptime(tm_str, "%y-%m-%d %h:%m:%s" ) print ( "时间元组:" ,tup2) #等价于 print ( "时间元组:" ,time.strptime(tm_str, "%y-%m-%d %h:%m:%s" )) |
运行结果:
current time: 1509503024.233398
time.struct_time(tm_year=2017, tm_mon=11, tm_mday=1, tm_hour=10, tm_min=23, tm_sec=44, tm_wday=2, tm_yday=305, tm_isdst=0)
年份: 2017
月份: 11
日期: 1
timestamp is: 1509503024.0
开始时间: 1.399506347461039e-06
结束时间1: 2.9997266297601293
结束时间2: 5.999885706981624
格式化时间字符串: 2017-11-01 10:23:44
格式化时间字符串: 2017-11-01 10:23:44
时间元组: time.struct_time(tm_year=2017, tm_mon=11, tm_mday=1, tm_hour=10, tm_min=23, tm_sec=44, tm_wday=2, tm_yday=305, tm_isdst=-1)
时间元组: time.struct_time(tm_year=2017, tm_mon=11, tm_mday=1, tm_hour=10, tm_min=23, tm_sec=44, tm_wday=2, tm_yday=305, tm_isdst=-1)
3、内建模块——datatime
(1)datatime.data——日期(年月日)
(2)datatime.time——时间(时分秒)
(3)datatime.datatime——日期+时间(年月日时分秒)
代码举例:
1
2
3
4
5
6
7
8
|
import datetime print (datetime.datetime.now()) #获取当前时间 print (datetime.datetime.now() + datetime.timedelta( 3 )) #当前时间的后三天 print (datetime.datetime.now() + datetime.timedelta( - 3 )) #当前时间的前三天 print (datetime.datetime.now() + datetime.timedelta(hours = 3 )) #当前时间的后三个小时 print (datetime.datetime.now() + datetime.timedelta(minutes = - 3 )) #当前时间的前三分钟 c_time = datetime.datetime.now() print (c_time.replace(minute = 2 ,hour = 3 )) #对当前时间的替换 |
运行结果:
2017-09-28 19:54:40.167870
2017-10-01 19:54:40.167870
2017-09-25 19:54:40.167870
2017-09-28 22:54:40.167870
2017-09-28 19:51:40.167870
2017-09-28 03:02:40.167870
希望本文所述对大家python程序设计有所帮助。
原文链接:https://blog.csdn.net/loveliuzz/article/details/78123426