9-Python基础编程之数据类型操作——日期与时间

概念

Python 程序能用很多方式处理日期和时间,转换日期格式是一个常见的功能。

常用操作

  1. time模块 提供了处理时间和表示之间转换的功能:
    获取当前时间戳;获取时间元组;获取格式化的时间;格式化日期字符串 <–> 时间戳获取当前CPU时间;休眠n秒 。
  2. calendar模块 提供与日历相关的功能:
    比如,为给定的月份或年份打印文本日历的功能。
  3. datetime模块 Python处理日期和时间的标准库:
    获取当天日期;单独获取当前的年月日时分秒;计算n天之后的日期;获取两个日期时间的时间差。

Time模块

时间戳

从0时区的1970年1月1日0时0分0秒,到所给定日期时间的秒数,为浮点数。

import time
res = time.time()
years=res/(24*60*60*365)+1970
print(res)
print(years)

输出:
1727466158.3110867
2024.7775925390374

时间元组

很多python时间函数将时间处理为9个数字的元组。
在这里插入图片描述

import time
res=time.localtime() # 默认为当前时间
print(res)
res=time.localtime(1727466158.3110867) # 获取设置的时间戳的时间元组
print(res)

输出:
time.struct_time(tm_year=2024, tm_mon=9, tm_mday=27, tm_hour=22, tm_min=47, tm_sec=6, tm_wday=4, tm_yday=271, tm_isdst=0)
time.struct_time(tm_year=2024, tm_mon=9, tm_mday=27, tm_hour=22, tm_min=42, tm_sec=38, tm_wday=4, tm_yday=271, tm_isdst=0)

格式化时间

# 1. 秒变成格式化时间
import time
t=time.time()
res=time.ctime(t) # ctime
print(res)
# 2. 时间元组变成格式化时间
t2=time.localtime()
res2=time.asctime(t2) # asctime
print(res2)

输出:
Fri Sep 27 22:51:34 2024
Fri Sep 27 22:51:34 2024

自定义格式化时间

# 1. 时间元组 转化为 格式化时间
import time
res1 = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())
res2 = time.strftime("%y-%m-%d %H:%M:%S",time.localtime())
print(res1)
print(res2)
# 2. 格式化日期 转化为 时间元组
res3 = time.strptime("2024-09-27 22:56:15","%Y-%m-%d %H:%M:%S") # 需要保证一一对应
print(res3) # 变为时间元组
t = time.mktime(res3) # 变为时间戳
print(t)

输出:
在这里插入图片描述

其中:
%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),星期天为星期的开始

获取CPU时间

通过此来获得一段代码执行的时间。

import time
start = time.perf_counter()
for i in range(1,100):
    i=+1

end = time.perf_counter()
print(end-start)

输出:
9.300000056100544e-05

休眠

import time
while True:
    res = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())
    print(res)
    time.sleep(1) # 休眠一秒打印,否则会重复多次相同秒数的操作

输出:
在这里插入图片描述

Calendar模块

import calendar
print(calendar.month(2024,10)) # 打印日历

输出:
在这里插入图片描述

Datetime模块

获取当天日期

import datetime
print(datetime.datetime.now())
print(datetime.datetime.today())

输出:
2024-09-27 23:18:00.219174
2024-09-27 23:18:00.219175

单独获取年月日时分秒

import datetime
t=datetime.datetime.now()
print(t.year)
print(t.month)
print(t.day)
print(t.hour)
print(t.minute)
print(t.second)

输出:
在这里插入图片描述

计算n天后日期

import datetime
t = datetime.datetime.today()
res = t + datetime.timedelta(days=7) # 时间增量
print(res) # 9.27号 +7天 是10.4

输出:
2024-10-04 23:23:28.738147

获取两天的时间差

import datetime
first = datetime.datetime(2024,9,27,12,00,00)
second = datetime.datetime(2024,12,21,12,00,00)
res=second-first
print(res) # 差多少天
print(res.total_seconds()) # 差多少秒

输出:
85 days, 0:00:00
7344000.0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

啥都鼓捣的小yao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值