python之time


一、time

1.介绍

内置库

2.使用

import time

from time import *

二、三种格式

  • 秒数历元时间:表示从1970年1月1日午夜(历元)经过了多少秒。
    如,1609387280.3342752
  • 时间戳 struct_time:九位元组。
    如,定义变量是t = struct_time((2020, 12, 31, 11, 56, 7, 3, 366, -1))
    输出显示是time.struct_time(tm_year=2020, tm_mon=8, tm_mday=29, tm_hour=23, tm_min=39, tm_sec=44, tm_wday=5, tm_yday=242, tm_isdst=0)
  • 时间字符串:自定义的字符串。
    如,'2020-12-31 4 11:56:07'
    在这里插入图片描述

1.strftime:时间戳→指定格式的时间字符串

# 按照自定义格式的获取当前时间
>>> t = struct_time((2020, 12, 31, 11, 56, 7, 3, 366, -1))
>>> strftime('%Y-%m-%d %w %H:%M:%S', t)
'2020-12-31 4 11:56:07'

在这里插入图片描述

# 第几周的不同:%U %W
>>> t1 = strptime('2020-01-05 11:56:07','%Y-%m-%d %H:%M:%S');
>>> strftime('%U %W', t1);
01 00

在这里插入图片描述

2.strptime:指定格式的时间字符串→时间戳

strptime(string[, format])

>>> strptime('2020-12-31 4 11:56:07','%Y-%m-%d %w %H:%M:%S')
time.struct_time(tm_year=2020, tm_mon=12, tm_mday=31, tm_hour=11, tm_min=56, tm_sec=7, tm_wday=3, tm_yday=366, tm_isdst=-1)

3.mktime:时间戳→秒数历元时间

mktime(struct_time)

>>> t = struct_time((2020, 12, 31, 11, 56, 7, 3, 366, -1))
>>> mktime(t)
1609386967.0

4.localtime:秒数历元时间→时间戳

>>> t = 1609393508.7334917
>>> localtime(t)
time.struct_time(tm_year=2020, tm_mon=12, tm_mday=31, tm_hour=13, tm_min=45, tm_sec=8, tm_wday=3, tm_yday=366, tm_isdst=0)                                                                                                                                                                                                                                        

三、用途

1.获取当前时间

# 秒数历元时间
>>> time()
1609387466.098439

# 时间戳
>>> localtime()
time.struct_time(tm_year=2020, tm_mon=12, tm_mday=31, tm_hour=12, tm_min=4, tm_sec=57, tm_wday=3, tm_yday=366, tm_isdst=0)

# 自定义字符串
>>> strftime('%Y-%m-%d %w %H:%M:%S',localtime())
'2020-12-31 4 12:05:53'

2.休眠暂停 和 统计用时

函数参数作用
sleep(t:float)t:暂停的秒数,单位秒暂停程序一段时间
time()返回一个浮点数,单位秒,表示从1970年1月1日午夜(历元)经过了多长时间
# 获取运行时间,秒
from time import *

start_time = time()				# 开始时间
# 睡眠5秒
sleep(5)
end_time = time()				# 结束时间
print(end_time - start_time)	# 经过秒数
# 5.000269889831543

3. 某天的昨天

from time import *

# 1 天=86400 秒
one_day = 86400

# 某天
t0_struct = strptime('2020-12-31','%Y-%m-%d')
t0_second = mktime(t0_struct)

# 昨天
t1_second = t0_second - one_day*1
t1_struct = localtime(t1_second)
t1_str = strftime('%Y-%m-%d', t1_struct)

print(t1_str)
'''2020-12-30'''
# 如today = '2020-02-12',day_count = 1,表示明天'2020-02-13'
def get_day(today, day_count):
    # 1 天=86400 秒
    one_day = 86400
    # 某天
    t0_struct = time.strptime(today,'%Y-%m-%d')
    t0_second = time.mktime(t0_struct)

    # toyday + day_count天
    t1_second = t0_second + one_day*day_count
    t1_struct = time.localtime(t1_second)
    t1_str = time.strftime('%Y-%m-%d', t1_struct)
    return t1_str

4. 比较时间大小

  1. 转化成相同格式的字符串后,直接比较字符串。如'2020-01-30' < '2020-02-12
    https://blog.csdn.net/sandalphon4869/article/details/104455348

  2. 转化成秒数历元时间,比较浮点数大小

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值