标签:ftime 介绍 定义 模块 基础 功能 常用方法 字符串转换 日期格式
#常用方法
1.time.sleep(sesc)
#(线程)推迟指定的时间运行,单位为秒
2.time.time()
# 获取当前时间戳(开始为1970年1月1日伦敦时间 结束为现在)
介绍: time模块是最原始的时间模块,可以在获取数据的基础上进行各种操作,还有一个datetime模块,是在time模块的基础上有了更好的功能
表示时间的三种方式
时间戳(timestamp): 通常来说,时间戳表示的是伦敦时间自1970年1月1日00:00:00开始计算的时间偏移量,运行type(time.time)返回的一个float类型
结构化时间(struct_time): struct_time在python中是一个元组,元组中共有9个元素(分别是,年,月,日,时,分,秒,一年中第几周,一年中第几天,已经是否夏令时)
索引(Index) | 属性(Attribute) | 值(Values) |
---|---|---|
0 | tm_year(年) | 比如2011 |
1 | tm_mon(月) | 1 - 12 |
2 | tm_mday(日) | 1 - 31 |
3 | tm_hour(时) | 0 - 23 |
4 | tm_min(分) | 0 - 59 |
5 | tm_sec(秒) | 0 - 60 |
6 | tm_wday(weekday) | 0 - 6(0表示周一) |
7 | tm_yday(一年中的第几天) | 1 - 366 |
8 | tm_isdst(是否是夏令时) | 默认为0 |
格式化时间(string_format_time):全称字符串格式化时间,常说的人容易读懂的时间,常用的格式一般为"1999-09-19 13:14:33"(‘%Y-%m-%d %H:%M:%S‘)
格式化方法 | 含义 |
---|---|
%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 | 本地简化星期名称(Mon) |
%A | 本地完整星期名称(Monday) |
%b | 本地简化的月份名称(Aug) |
%B | 本地完整的月份名称(August) |
%c | 本地相应的日期表示和时间表示(Mon Aug 12 15:59:54 2019)外国人比较爱用 |
%j | 年内的一天(001-366) |
%p | 本地A.M.或P.M.的等价符 |
%U | 一年中的星期数(00-53)星期天为星期的开始 |
%w | 星期(0-6),星期1为星期的开始 |
%W | 一年中的星期数(00-53)星期一为星期的开始 |
%x | 本地相应的日期表示 |
%X | 本地相应的时间表示 |
%Z | 当前时区的名称 |
%% | %本身 |
三种格式转换图
# 时间戳转结构化时间
# time.gmtime(时间戳) # UTC时间,与应该伦敦当前时间一致
stmap_time = 1233345666
struct_t = time.gmtime(stmap_time)
#结果 time.struct_time(tm_year=2009, tm_mon=1, tm_mday=30, tm_hour=20, tm_min=1, tm_sec=6, tm_wday=4, tm_yday=30, tm_isdst=0)
# time.localtime(时间戳) # 当地时间。例如:在北京执行该方法,与UTC相差8小时,UTC时间+8 = 北京时间
struct_t = time.localtime(stmap_time)
#结果 time.struct_time(tm_year=2009, tm_mon=1, tm_mday=31, tm_hour=4, tm_min=1, tm_sec=6, tm_wday=5, tm_yday=31, tm_isdst=0)
# 结构化转时间戳
sturc = time.mktime(结构化时间)
#结果 1565601587.0
# 格式化时间 -->结构化
结构化时间 = time.strptime(格式化时间,'%Y-%m-%d %H:%M:%S')
# 结构化 --> 格式化时间
格式化时间 = time.strftime(结构化时间,格式)
练习题
当前月1号对应的0点的时间戳
# 定义一个当前月分的一号0点字符串格式的时间
now_time = time.strftime('%Y-%m-01 00:00:00')
# 将格式化时间转换为结构化时间
jiegou = time.strptime(now_time, '%Y-%m-%d %H:%M:%S')
# 将结构化时间转换为对应的时间戳
shijiancuo = time.mktime(jiegou)
print('%s对应的时间戳为%s'%(now_time,shijiancuo))
n1的时间 n2的时间 n2 - n1的时间经历里多少年 月 日 时 分 秒
**思想**:需要首先将两个字符串时间转换为时间戳格式,然后相减,再转换为结构化时间,然后减去时间戳最开始时间(伦敦时间:1970/01/01 00:00:00)
import time
n1 = '2019-07-18 20:07:56'
n2 = '2019-07-19 22:03:12'
struct_time1, struct_time2 = time.strptime(n1, '%Y-%m-%d %H:%M:%S'), time.strptime(n2, '%Y-%m-%d %H:%M:%S')
struct_time1, struct_time2 = time.mktime(struct_time1), time.mktime(struct_time2)
diff_time = struct_time2 - struct_time1
struct_time = time.gmtime(diff_time)
print('过去了{0}年{1}月{2}日{3}小时{4}分钟{5}秒'.format(
struct_time.tm_year-1970,
struct_time.tm_mon-1,
struct_time.tm_mday-1,
struct_time.tm_hour,
struct_time.tm_min,
struct_time.tm_sec
))
简介:在time模块基础上进行更加丰富的功能
导入
from datetime import datetime
datetime操作
# 创造datetime数据
datetime.now() 获取当前本地的datetime时间
# 获取UTC时间
b=datetime.utcnow()
# 结果 2019-08-12 17:25:52.475986
# 创建一个指定的时间
datetime(2017,8,9,11,22,33)
# 结果 2017-08-09 11:22:33
# str类型 --> datetime
# datetime时间 = datetime.strptime(字符串,格式)
now = datetime.strptime('2017-08-09 11:22:33', '%Y-%m-%d %H:%M:%S')
# 结果 2017-08-09 11:22:33
# datetime --> str时间
# str时间 = dt.strftime(格式)
now = now.strftime('%Y-%m-%d %H:%M:%S')
将以下字符串转换成datetime类型
‘2017/9/30‘
‘2017年9月30日星期六‘
‘2017年9月30日星期六8时42分24秒‘
‘9/30/2017‘
‘9/30/2017 8:42:50 ‘
# '2017/9/30'
str_time = datetime.strptime('2017/9/30','%Y/%m/%d')
print(str_time)
# 结果 2017-09-30 00:00:00
# '2017年9月30日星期六'
str_time = datetime.strptime('2017年9月30日星期六', '%Y年%m月%d日星期六')
print(str_time)
# 结果 2017-09-30 00:00:00
# 9/30/2017
str_time = datetime.strptime('9/30/2017', '%m/%d/%Y')
print(str_time)
# 结果 2017-09-30 00:00:00
# 9/30/2017 8:42:50
str_time = datetime.strptime('9/30/2017 8:42:50 ', '%m/%d/%Y %H:%M:%S ')
print(str_time)
#2017-09-30 08:42:50
将以下datetime类型转换成字符串:
Saturday, September 30, 2017
9/30/2017 9:22:17 AM
September 30, 2017
# Saturday, September 30, 2017
studect_t = datetime(2017,9,28,10,3,43)
print(studect_t.strftime('%A, %B %d, %Y'))
# 09/28/2017 10: 03: 43 AM
studect_t = datetime(2017, 9, 28, 10, 3, 43)
print(studect_t.strftime('%m/%d/%Y %H: %M: %S %p'))
# September 30, 2017
studect_t = datetime(2017, 9, 28, 10, 3, 43)
print(studect_t.strftime('%B %d ,%Y'))
标签:ftime 介绍 定义 模块 基础 功能 常用方法 字符串转换 日期格式
原文地址:https://www.cnblogs.com/Hybb/p/11518994.html