时间的类型
1、时间戳类型 timestamp 1587102808.16 自1970-1-1 0:00:00 至今所经历的秒数
2、time.struct_time 类型 如下
time.struct_time(tm_year=2020, tm_mon=4, tm_mday=17, tm_hour=13, tm_min=53, tm_sec=28, tm_wday=4, tm_yday=108, tm_isdst=0) 年月日小时分钟秒 星期(0是周一,6是周七 )当年第N天,是否夏令时
3、datetime模块的datetime类
4、字符串格式 可按需求定制化 2020--04--17 05:55:49
5、其他的时间概念 世界标准时间 当地时间加上时差
时间使用的场景: 在不同的时间类型之间 相互转换 在世界时间和本地时间之间相互转换
一、 time 模块使用
时间戳类型
time.time() = 当地时间时间戳类型
--->字符串 time.ctime([secs])
--->struct time.localtime(timestamp)= struct
import time
print time.time()
print time.ctime(time.time())
print time.localtime(time.time())
1590385115.23
Mon May 25 13:38:35 2020
time.struct_time(tm_year=2020, tm_mon=5, tm_mday=25, tm_hour=13, tm_min=38, tm_sec=35, tm_wday=0, tm_yday=146, tm_isdst=0)
字符串格式
time.ctime() = 当地时间字符串类型 默认把当前时间的时间戳转换到字符串
--->struct time.strptime(time_str, time_format_str)
Python time ctime() 函数把一个时间戳(按秒计算的浮点数)转化为time.asctime()的形式。 如果参数未给或者为None的时候,将会默认time.time()为参数。它的作用相当于 asctime(localtime(secs))。
问题1:字符串可以直接转时间戳吗?
import time
struct_time = time.strptime("30 Nov 00", "%d %b %y")
print("返回的元组: %s " % str(struct_time))
>>>>
返回的元组: time.struct_time(tm_year=2000, tm_mon=11, tm_mday=30, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=335, tm_isdst=-1)
date = '2021-04'
print(date)
struct_time = time.strptime(date, "%Y-%m")
print("返回的元组: %s " % str(struct_time))
print(time.ctime())
>>> 21年4月,默认返回21年4月1日
返回的元组: time.struct_time(tm_year=2021, tm_mon=4, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=91, tm_isdst=-1)
struct格式 是一个元祖的格式
time.localtime() = 当地时间struct类型
time.gmtime([secs]) = 世界时间 struct类型
--->字符串
time.strftime(time_format_str, struct_time_instance) 自定义格式
time.asctime([t]) "Fri Aug 19 11:14:16 2016"
--->时间戳 ttime.mktime(time.localtime())
print time.localtime()
print time.gmtime()
print time.strftime("'%Y-%m-%d %H:%M'", time.localtime())
print time.strftime("'%Y-%m-%d %H:%M'", time.gmtime())
print time.asctime(time.localtime())
print time.asctime(time.gmtime())
print time.mktime(time.localtime())
print time.mktime(time.gmtime())
time.struct_time(tm_year=2020, tm_mon=5, tm_mday=25, tm_hour=13, tm_min=46, tm_sec=6, tm_wday=0, tm_yday=146, tm_isdst=0)
time.struct_time(tm_year=2020, tm_mon=5, tm_mday=25, tm_hour=5, tm_min=46, tm_sec=6, tm_wday=0, tm_yday=146, tm_isdst=0)
'2020-05-25 13:46'
'2020-05-25 05:46'
Mon May 25 13:46:06 2020
Mon May 25 05:46:06 2020
1590385566.0
1590356766.0
time.altzone 返回与utc时间的时间差,以秒为单位(西区该值为正,东区该值为负)。其表示的是本地DST 时区的偏移量,只有daylight非0时才使用。
time.clock() 返回当前进程所消耗的处理器运行时间秒数(不包括sleep时间),值为小数;该方法Python3.3改成了time.process_time()
print time.altzone
print time.clock()
-32400
0.0
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),星期天为 0,星期一为 1,以此类推。
- %W 一年中的星期数(00-53)星期一为星期的开始
- %x 本地相应的日期表示
- %X 本地相应的时间表示
- %Z 当前时区的名称
- %% %号本身
二、 datetime 模块使用
在支持日期时间数学运算的同时,实现的关注点更着重于如何能够更有效地解析其属性用于格式化输出和数据操作
学习之后 会发现 datetime 模块里的datetime类 基本满足个人需求。。。。。
atetime模块中包含如下类:
类名 | 功能说明 |
---|---|
date | 日期对象,常用的属性有year, month, day |
time | 时间对象 |
datetime | 日期时间对象,常用的属性有hour, minute, second, microsecond |
datetime_CAPI | 日期时间对象C语言接口 |
timedelta | 时间间隔,即两个时间点之间的长度 |
tzinfo | 时区信息对象 |