Python文件处理III——时间处理

一,时间处理的基本介绍

1,主要内容

时间处理包括时间类型和对time,datetime,calender模块的使用

  • 时间类型:字符串时间,时间戳
  • time模块:时间戳,字符串时间,时间类型转换,时间计算
  • datetime模块
  • calender模块
2,应用场景
  • 根据时间筛选数据,例如:1个月数据,1年数据,某天数据;
  • 与时间相关指标统计:日活,月活,留存等;

3,常见操作
  • 获取当前时间与时间戳;
  • 时间转换,例如:时间字符串转成时间对象; 
  • 时间差计算,例如:最近三天,最近7天,两个时间差;

4,时间转化关系

时间戳 ---------------->struct_time------------------->时间字符串

二,time模块

1,准备工作
  • 下载模块
  • 导入
import time

2,时间戳(timestamp)

相关方法

方法说明
time.time()返回当前时间戳,类型:浮点数
time.time_ns()返回纳秒,类型:整数

示例

import time
print(time.time())
print(time.time_ns())
'''
Output:输出取决于当前时间
1716811446.9699967
1716811446969996700
'''
3,struct_time
  • 形式:
time.struct_time(
 tm_year=2022, tm_mon=1, tm_mday=1, 
tm_hour=1, tm_min=26, tm_sec=57, 
tm_wday=4, tm_yday=21, tm_isdst=0)

说明:

tm_year  
tm_mon
tm_mday
tm_hour
 tm_min
tm_sec
tm_wday星期(0-6,周日为0)
tm_yday今年第几天
 tm_isdst是否夏令时
  • 相关方法
方法说明
time.localtime([secs])将时间戳转成struct_time类型,如果secs为空,获取当前时间
time.gmtime([secs])将时间戳转换为UTC时区(0时区)的struct_time,如果secs为空, 获取当前时间

示例:

st_time1 = time.localtime()
st_time2 = time.gmtime()
print(st_time1)
print(st_time2)
'''
time.struct_time(tm_year=2024, tm_mon=5, tm_mday=27, tm_hour=21, tm_min=35, tm_sec=28, tm_wday=0, tm_yday=148, tm_isdst=0)
time.struct_time(tm_year=2024, tm_mon=5, tm_mday=27, tm_hour=13, tm_min=35, tm_sec=28, tm_wday=0, tm_yday=148, tm_isdst=0)
'''
4,转化
  • 时间戳和struct_time转化

方法:

方法说明
time.localtime(ts)将时间戳转成struct_time
time.mktime(tuple)将struct_time转成时间戳

示例:

import time
ts1 = time.time()
print(ts1)
st = time.localtime(ts1)
print(st)
ts2 = time.mktime(st)
print(ts2)
'''
1716817095.7837
time.struct_time(tm_year=2024, tm_mon=5, tm_mday=27, tm_hour=21, tm_min=38, tm_sec=15, tm_wday=0, tm_yday=148, tm_isdst=0)
1716817095.0
'''
  • 字符串时间和struct_time的转化

方法:

方法说明
time.strptime(string, format)将字符串按照对应的格式转成struct_time对象
time.strftime(format[, tuple])将strcut_time对象按照指定格式转成字符串时间
time.asctime([tuple])将strct_time对象转成可读的时间字符串,例如:'Fri Jan 21 18:06:51 2022'
time.ctime(seconds)将时间戳转成可读的时间字符串,例如:'Fri Jan 21 18:06:51 2022'

format说明:

符号说明
%Y年份[xxxx]
%y年份[xx]
%m月份[01,12]
%d日期[01,31]
%H小时[00,23]
%I小时[00,12]
%S秒数[00,59]
%pAM或PM
%x    日期(月/日/不带世纪的年份)
%X时间(时:分:秒)
%A本地完整星期名称
 %a本地简化星期名称
%B本地完整的月份名称
%b本地简化的月份名称
%w星期(0-6),0:周日,1:周1,以此类推

三,datetime模块

1,常用方法
方法说明
datetime.date表示日期,常用的属性有:year, month和day
datetime.time  表示时间,常用属性有:hour, minute, second, microsecond
datetime.datetime表示日期时间
datetime.timedelta表示两个date、time、datetime实例之间的时间间隔,分辨率(最小单 位)可达到微秒
datetime.timezone时区相关类

2,示例
from datetime import date, time, datetime
#创建date对象
date = date(2024, 5, 27)
#创建time对象
time = time(21, 0,1)
#获取当前的时间
dt_now = datetime.now()
print(dt_now)
#获取当前时间戳
print(dt_now.timestamp())
#获取当前时间的date
print(dt_now.date())
#获取当前的time
print(dt_now.time())
#计算时间差
dt_delta = dt_now - datetime(2024, 1,1)
print(dt_delta)
#转成时间字符串
s = dt_now.strftime("%Y-%m-%d %H:%M:%S")
print(s)
#将时间字符串转datetime对象
print(datetime.strptime(s, "%Y-%m-%d %H:%M:%S"))

输出结果:

'''
2024-05-27 22:05:20.319027
1716818720.319027
2024-05-27
22:05:20.319027
147 days, 22:05:20.319027
2024-05-27 22:05:20
2024-05-27 22:05:20
'''

四,calendar模块

1,介绍

calendar是与日历相关的模块,主要用来:

  • 获取某一年日历,第一行为年份,第二行月份,第三行为星期
  • 判断是否是闰年
  • 获取指定年月的日历
  • 计算指定年月日是星期几
2,示例
import calendar
print(calendar.calendar(2024))
print(calendar.isleap(2024))
print(calendar.month(2024,5))
print(calendar.weekday(2024,5,27))

结果:

  • 12
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值