time 模块这一篇就够了

time \ datetime

python3中time模块的用法

导入

import time
查看time模块内置的能够使用的方法:
print(dir(time))
查看内置方法的说明
help(time.time_method)
help(time.time)

时间的表示形式:

在python中,通常有三种方式来表示时间: 时间戳、元组(结构化时间,(struct_time))、格式化的时间字符串。

  • 时间戳 (timestamp)

    print(time.time())
    1679797873.3225777
    
    
  • 结构化时间 (struct_time 元组共有9个元素

    time.gmtime()
    time.struct_time(tm_year=2023, tm_mon=3, tm_mday=26, tm_hour=2, tm_min=36, tm_sec=18, tm_wday=6, tm_yday=85, tm_isdst=0)
    time.localtime()
    time.struct_time(tm_year=2023, tm_mon=3, tm_mday=26, tm_hour=10, tm_min=36, tm_sec=39, tm_wday=6, tm_yday=85, tm_isdst=0)
    
    time.asctime()
    'Sun Mar 26 10:57:40 2023'
    time.ctime()
    'Sun Mar 26 10:58:03 2023'
    
  • 格式化字符串时间


mktime 把时间元组转换成时间戳格式()
time.mktime(time.gmtime())
time.mktime(time.localtime())

time.mktime(time.localtime())
1679799642.0

time.mktime(time.gmtime())
1679770803.0
sleep() 制定暂停多长时间
time.sleep(n)  n 指定暂停n秒 
strftime (format,tuple)把一个代表时间的元组或者struct_time( 如由time.localtime() 和time.gmtime() 返回)转化为格式化的时间字符串
 Commonly used format codes:
    
    %Y  Year with century as a decimal number.===>完整的年份
    %m  Month as a decimal number [01,12].===>月份(01-12)
    %d  Day of the month as a decimal number [01,31].===>一个月中的第几天(01-31)
    %H  Hour (24-hour clock) as a decimal number [00,23].===>一天中的第几个小时(24小时制,00-23)
    %M  Minute as a decimal number [00,59].===>分钟数(00-59)
    %S  Second as a decimal number [00,61].===>秒(01-61)
    %z  Time zone offset from UTC.===>用+HHMM或者-HHMM表示距离格林威治的时区偏移(H代表十进制的小时数,M代表十进制的分钟数)
    %Z  中国标准时间
    %a  Locale's abbreviated weekday name.===>本地(local)简化星期名称
    %A  Locale's full weekday name.===>本地完整星期名称
    %b  Locale's abbreviated month name.===>本地简化月份名称
    %B  Locale's full month name.===>本地完整月份名称
    %c  Locale's appropriate date and time representation.===>本地相应的日期和时间表示
    %I  Hour (12-hour clock) as a decimal number [01,12].===>一天中的第几个小时(12小时制,01-12)
    %p  Locale's equivalent of either AM or PM.===>本地am或者pm的相应符
time.localtime()
time.struct_time(tm_year=2023, tm_mon=3, tm_mday=26, tm_hour=11, tm_min=13, tm_sec=14, tm_wday=6, tm_yday=85, tm_isdst=0)


time.strftime('%Y-%m-%d',time.localtime())
'2023-03-26'
time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())
'2023-03-26 11:09:17'
time.strftime('%Y-%m-%d %H:%M:%S %a',time.localtime())
'2023-03-26 11:09:29 Sun'
time.strftime('%Y-%m-%d %H:%M:%S %A',time.localtime())
'2023-03-26 11:09:50 Sunday'
time.strftime('%Y-%m-%d %H:%M:%S %A%b',time.localtime())
'2023-03-26 11:10:10 SundayMar'
time.strftime('%Y-%m-%d %H:%M:%S %A %b',time.localtime())
'2023-03-26 11:10:18 Sunday Mar'
time.strftime('%Y-%m-%d %H:%M:%S %A %B',time.localtime())
'2023-03-26 11:10:24 Sunday March'
time.strftime('%Y-%m-%d %H:%M:%S %A %B %z',time.localtime())
'2023-03-26 11:10:33 Sunday March +0800'
time.strftime('%Y-%m-%d %H:%M:%S %A %B %Z',time.localtime())
'2023-03-26 11:10:41 Sunday March 中国标准时间'
time.strftime('%Y-%m-%d %H:%M:%S %A %B %Z %c',time.localtime())
'2023-03-26 11:11:38 Sunday March 中国标准时间 Sun Mar 26 11:11:38 2023'
time.strftime('%c',time.localtime())
'Sun Mar 26 11:11:58 2023'
time.strftime('%c %p',time.localtime())
'Sun Mar 26 11:12:18 2023 AM'

三种时间表示方式之间的相互转换

需求1:比较时间的大小或早晚

需要把给定的多个格式化时间转换成时间元组,再有时间元组转换成时间戳进行数字的大小比较。

2023-03-24 10:59:02’ 与 1578131370.0 时间比较大小

思路是要转换成一样的格式,才能进行比较。

time.strptime(string,format)

time.mktime()

*** 把字符串转换成功时间戳 或者把时间戳转换成字符串格式*** ,借助中间格式:时间元组格式

t1 = '2023-03-24 10:59:02'
t2 = 1578131370.0

## 把字符串转换成时间戳格式

把字符串 转换成 时间元组
t3 =  time.strptime(t1,'%Y-%m-%d %H:%M:%S')
把时间元组转换成 时间戳
time.mktime(t3)
time.mktime(t3)
1679626742.0

### 把时间戳转换成字符串格式
把时间戳转换成时间元组
time.strftime()



需要2: 输出方便阅读的时间字符串格式

需要把时间戳格式转换成时间元组格式,再由时间元组的格式转换成时间字符串格式

t1= time.time() ------>t2=time.localtime(t1)----> time.strftime(‘’%Y-%m-%d %H:%M:%S’,t2)

把格式化时间 转换成时间戳

strptime(string,format) 把字符串时间 转化成时间元组的格式
time.time()

time.localtime()
time.struct_time(tm_year=2023, tm_mon=3, tm_mday=26, tm_hour=11, tm_min=13, tm_sec=14, tm_wday=6, tm_yday=85, tm_isdst=0)

把时间元组的格式转换成自定义适合人类阅读的格式。

time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())
'2023-03-26 11:15:30'


t1 = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())
time.strptime(t1,'%Y-%m-%d %H:%M:%S')
time.struct_time(tm_year=2023, tm_mon=3, tm_mday=26, tm_hour=11, tm_min=15, tm_sec=38, tm_wday=6, tm_yday=85, tm_isdst=-1)
t2 = time.strptime(t1,'%Y-%m-%d %H:%M:%S')

time.mktime(t2)
1679800538.0
t3 = time.mktime(t2)


#时间减一天,一天等于86400秒
timestamp2 = timestamp - 86400
#转换成时间元祖
time_tuples = time.localtime(timestamp2)
#转换成字符串
tf = time.strftime('%Y-%m-%d', time_tuples)
print(tf)
'2018-07-11'

获取时间元组

time.gmtime()
time.localtime()

获取字符串时间

time.ctime()

获取时间戳时间

time.time()

1 、时间戳转换时间元组

time.localtime(time.time())

2 、元组时间转换成格式化时间

time.localtime(time.time())
t1 = time.localtime(time.time())
print(t1)
time.struct_time(tm_year=2023, tm_mon=3, tm_mday=26, tm_hour=15, tm_min=54, tm_sec=40, tm_wday=6, tm_yday=85, tm_isdst=0)

time.strftime('%Y-%m-%d %H:%M:%S',t1)
time.strftime('%Y-%m-%d %H:%M:%S',t1)
'2023-03-26 15:57:31'



3、 格式化时间转换成时间元组

t1 = '2022-10-10 10:38:34'
t2 = time.strptime(t1,'%Y-%m-%d %H:%M:%S')
print(t2)
time.struct_time(tm_year=2022, tm_mon=10, tm_mday=10, tm_hour=10, tm_min=38, tm_sec=34, tm_wday=0, tm_yday=283, tm_isdst=-1)
4、 时间元组转换成时间戳
t1 = '2022-10-10 10:38:34'
t2 = time.strptime(t1,'%Y-%m-%d %H:%M:%S')
print(t2)
time.struct_time(tm_year=2022, tm_mon=10, tm_mday=10, tm_hour=10, tm_min=38, tm_sec=34, tm_wday=0, tm_yday=283, tm_isdst=-1)

t3 = time.mktime(t2)
print(t3)

1665369514.0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值