datetime和time模块
内置模块:datetime
模块导入:from datetime import datetime
#!/usr/bin/env python # -*- coding:utf-8 -*- import time from datetime import datetime,timezone,timedelta # ######################## 获取datetime格式时间 ############################## """ v1 = datetime.now() # 当前本地时间(东8区) print(v1) tz = timezone(timedelta(hours=7)) # 当前东7区时间 v2 = datetime.now(tz) print(v2) v3 = datetime.utcnow() # 当前UTC时间 print(v3) """ # ######################## 把datetime格式转换成字符串 ############################## """ v1 = datetime.now() print(v1,type(v1)) val = v1.strftime("%Y-%m-%d %H:%M:%S") #有些windows中不支持格式化中有中文,比如"%Y年%m月",是因为用的编码不一致,但是在mac和linux中不用担心 print(val) """ # ######################## 字符串转成datetime ############################## """ v1 = datetime.strptime('2011-11-11','%Y-%m-%d') print(v1,type(v1)) """ # ######################## datetime时间的加减 ############################## """ v1 = datetime.strptime('2011-11-11','%Y-%m-%d') v2 = v1 - timedelta(days=140) date = v2.strftime('%Y-%m-%d') print(date) """ # ######################## 时间戳和datetime关系 ############################## """ ctime = time.time() print(ctime) v1 = datetime.fromtimestamp(ctime) print(v1) v1 = datetime.now() val = v1.timestamp() print(val) """
时间格式化对照表:
格式符 | 说明 |
%a |
星期的英文单词的缩写:如星期一, 则返回 Mon |
%A | 星期的英文单词的全拼:如星期一,返回 Monday |
%b | 月份的英文单词的缩写:如一月, 则返回 Jan |
%B | 月份的引文单词的缩写:如一月, 则返回 January |
%c | 返回datetime的字符串表示,如Sun Nov 3 16:26:22 2019 |
%d | 返回的是当前时间是当前月的第几天 |
%f | 微秒的表示: 范围: [0,999999] |
%H | 以24小时制表示当前小时 |
%I | 以12小时制表示当前小时 |
%j | 返回 当天是当年的第几天 范围[001,366] |
%m | 返回月份 范围[0,12] |
%M | 返回分钟数 范围 [0,59] |
%P | 返回是上午还是下午–AM or PM |
%S | 返回秒数 范围 [0,61]。。。手册说明的 |
%U | 返回当周是当年的第几周 以周日为第一天 |
%W | 返回当周是当年的第几周 以周一为第一天 |
%w | 当天在当周的天数,范围为[0, 6],6表示星期六 |
%x | 日期的字符串表示 :03/08/15 |
%X | 时间的字符串表示 :23:22:08 |
%y | 两个数字表示的年份 :2019为19 |
%Y | 四个数字表示的年份 2015 |
%z | 与utc时间的间隔 (如果是本地时间,返回空字符串) |
%Z | 时区名称(如果是本地时间,返回空字符串) |
举几个日期格式化综合例子:
#!/usr/bin/env python # -*- coding:utf-8 -*- from datetime import datetime dt = datetime.now() print('时间:(%Y-%m-%d %H:%M:%S %f): ', dt.strftime('%Y-%m-%d %H:%M:%S %f')) print('时间:(%Y-%m-%d %H:%M:%S %p): ', dt.strftime('%y-%m-%d %I:%M:%S %p')) print('星期缩写%%a: %s ' % dt.strftime('%a')) print('星期全拼%%A: %s ' % dt.strftime('%A')) print('月份缩写%%b: %s ' % dt.strftime('%b')) print('月份全批%%B: %s ' % dt.strftime('%B')) print('日期时间%%c: %s ' % dt.strftime('%c')) print('今天是这周的第%s天 ' % dt.strftime('%w')) print('今天是今年的第%s天 ' % dt.strftime('%j')) print('今周是今年的第%s周 ' % dt.strftime('%U')) print('今天是当月的第%s天 ' % dt.strftime('%d')) # 输出结果如下: """ 时间:(%Y-%m-%d %H:%M:%S %f): 2019-11-03 16:30:49 525852 时间:(%Y-%m-%d %H:%M:%S %p): 19-11-03 04:30:49 PM 星期缩写%a: Sun 星期全拼%A: Sunday 月份缩写%b: Nov 月份全批%B: November 日期时间%c: Sun Nov 3 16:30:49 2019 今天是这周的第0天 今天是今年的第307天 今周是今年的第44周 今天是当月的第03天 """
内置模块:time
1. time.time() # 返回当前时间的时间戳(1970纪元后经过的浮点秒数)。
举例:
#!/usr/bin/env python # -*- coding:utf-8 -*- import time now_time = time.time() print(now_time)
输出结果:
1572770580.673631
2. time.sleep() # 使程序休眠多长时间,单位为秒
举例:计算程序运行多长时间
#!/usr/bin/env python # -*- coding:utf-8 -*- import time old_time = time.time() time.sleep(2) new_time = time.time() result = new_time - old_time print(result)
输出结果:
2.0001912117004395
3. time.localtime() # 返回的结果为 可命名元组(参考collections中namedtuple方法)
#!/usr/bin/env python # -*- coding:utf-8 -*- import time p = time.localtime() print(p)
输出结果:
time.struct_time(tm_year=2019, tm_mon=11, tm_mday=3, tm_hour=16, tm_min=49, tm_sec=58, tm_wday=6, tm_yday=307, tm_isdst=0)