最易懂的笔记整理 时间模块应用及处理 time datetime dateutil calendar 建议收藏

本文主要是介绍最易懂的笔记整理 时间模块应用及处理 time datetime dateutil calendar 建议收藏,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

# -*- coding: utf-8 -*-
# Version: Python 3.9.7
# Author: TRIX
# Date: 2021-09-10 11:11:22
# Use: 时间模块及处理 time datetime dateutil calendar#时间unix时间戳 从1970.01.01 0:0:0 开始到现在一共的秒数 只能表示1970-2038的时间
1 分钟 	60
1 小时 	3600
186400
1604800
1(30.44) 	2629743
1(365.24) 	31556736
import time
time.time() #返回当前 unix时间戳(float) time模块中的函数默认值都为time.time()
time.sleep(sec)#程序推迟执行的秒数struct_time_obj=time.gmtime(unix_time_stamp)# unix时间戳 转 0时区struct_time对象 tm_hour+8才是当地时间 与所在时区有关 推荐使用localtime
print(struct_time_obj)
>>>time.struct_time(tm_year=2016, tm_mon=4, tm_mday=7, tm_hour=2, tm_min=55, tm_sec=45, tm_wday=3, tm_yday=98, tm_isdst=0)
0 tm_year #年份 其值等于实际年份减去1900
1 tm_mon #月份(从一月开始 0代表一月)-取值区间为[0,11]
2 tm_mday #一个月中的日期-取值区间为[1,31]
3 tm_hour #时-取值区间为[0,23]
4 tm_min #分-取值区间为[0,59]
5 tm_sec #秒 – 取值区间为[0,59]
6 tm_wday #星期 – 取值区间为[0,6] 其中0代表星期一 1代表星期二 以此类推
7 tm_yday #从每年的1月1日开始的天数 – 取值区间为[0,365] 其中0代表1月1日 1代表1月2日 以此类推
8 tm_isdst #夏令时标识符 实行夏令时的时候 tm_isdst为1 不实行夏令时的时候 tm_isdst为0 系统自动判断tm_isdst为-1%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) 星期天为星期的开始
%W #一年中的星期数(00-53)星期一为星期的开始
%x #本地相应的日期表示
%X #本地相应的时间表示
%Z #当前时区的名称#时间戳 本地struct_time对象 时间字符串 datetime对象 互相转换
local_struct_time_tuple=time.localtime(unix_time_stamp)# unix时间戳 转 本地struct_time对象
'Sat Mar 28 22:24:24 2016'=time.strftime('%a %b %d %H:%M:%S %Y', time.localtime(1530000078.0))# unix时间戳 转 时间字符串
'Tue Feb 17 10:00:18 2021'=time.ctime(unix_time_stamp)#unix时间戳 转 时间字符串
datetime_obj=datetime.datetime.fromtimestamp(unix_time_stamp)# unix时间戳转 datetime对象
unix_time_stamp=time.mktime(local_struct_time_tuple)#本地struct_time对象 转 unix时间戳
'2021-09-09 20:59:51'=time.strftime('%Y-%m-%d %H:%M:%S',struct_time_obj)#本地struct_time对象 转 时间字符串
'Tue Feb 17 09:42:58 2019'=time.asctime(time.gmtime(unix_time_stamp) or time.localtime(unix_time_stamp))#本地struct_time对象 转 时间字符串
datetime_obj=datetime.datetime.fromtimestamp(mktime(local_struct_time_tuple))#本地struct_time对象 转 datetime对象
1530000078.0=time.mktime(time.strptime('2018-06-26 16:01:18', '%Y-%m-%d %H:%M:%S'))# 时间字符串 转 unix时间戳
struct_time_obj=time.strptime('2021-09-09 20:59:51','%Y-%m-%d %H:%M:%S')# 时间字符串 转 本地struct_time对象
datetime_obj=datetime.datetime.strptime('2018-06-26 16:01:18', '%Y-%m-%d %H:%M:%S')# 时间字符串 转 datetime对象 打印datetime对象会显示为时间字符串
unix_time_stamp=time.mktime(datetime_obj.timetuple())# datetime对象 转 unix时间戳
struct_time_obj=datetime_obj.timetuple()#datetime对象 转 本地struct_time对象
'2018-06-26 16:01:18'=str(datetime_obj)# datetime对象 转 时间字符串
'2020-11-19 00:21:04.982400'=str(datetime.datetime(year=1900, month=1, day=1) + datetime.timedelta(days=44152.014641))# excel的float日期 转 时间字符串
datetime_obj=datetime.datetime(year=1900, month=1, day=1) + datetime.timedelta(days=44152.014641)# excel的float日期 转 datetime对象#常用时间处理
unix_time_stamp=time.mktime(datetime_obj.timetuple())# datetime对象 转 unix时间戳
today_obj=datetime.date.today()#今天 2021-09-09
yesterday=today_obj-datetime.timedelta(days=1)#昨天
last_month=today_obj.month-1 if today_obj.month-1 else 12#上个月 如果是1-1=0 则为12月 0==False
today_str=today_obj.strftime("%Y-%m-%d")# datetime对象 转 时间字符串
today_obj=datetime.datetime.strptime(today_str, "%Y-%m-%d")## 时间字符串 转 datetime对象
today_obj + datetime.timedelta(hours=8)#补时差#datetime
import datetime
datetime.date.today()#date对象 打印返回时间字符串 2021-09-09
datetime.date.fromtimestamp(unix_time_stamp)#时间戳转字符串日期
date_obj=datetime.date(year,month,day)#date对象 和 datetime对象类似
date_obj.year
date_obj.month
date_obj.day
date_obj.replace(newyear,newmonth,newday)#返回替换后的date_obj 本身不替换
date_obj.timetuple()#返回struct_time对象
date_obj.isocalendar()#返回IsoCalendarDate对象 包含year,month,day
date_obj.isoformat()#返回'%Y-%m-%d的字符串time_obj=datetime.time(hour,minute,second)#time对象 和 datetime对象类似
time_obj.hour
time_obj.minute
time_obj.second
time_obj.replace(newhour,newminute,newsecond)
time_obj.isoformat()#返回格式如'HH:MM:SS’的字符串datetime.datetime.today()#datetime对象 2021-09-09 20:59:51
'2021-09-09 20:46:13.923185'=datetime.datetime.now(time_zone)#返回一个表示当前本地时间的datetime对象 如果提供了参数time_zone 则返回时区时间 如 'UTC' 时区简称百度
datetime.datetime.utcnow()#返回一个当前utc时间的datetime对象 格林威治时间
datetime.datetime.fromtimestamp(unix_time_stamp,time_zone)#根据时间戳创建一个datetime对象 time_zone指定时区信息
datetime.datetime.utcfromtimestamp(unix_time_stamp)#根据时间戳创建一个datetime对象 utc
datetime.datetime.combine(date,time)#根据date和time 创建一个datetime对象
datetime_obj=datetime.datetime.strptime('2018-06-26 16:01:18', '%Y-%m-%d %H:%M:%S')# 时间字符串 转 datetime对象
datetime_obj=datetime.datetime(year,month,day,hour,minute,second)
datetime_obj.year month day hour minute second microsecond timezone
datetime_obj.date()#获取date对象
datetime_obj.time()#获取time对象
datetime_obj.replace(year, month, day, hour, minute, second, microsecond, timezone)
datetime_obj.timetuple()
datetime_obj.utctimetuple()
datetime_obj.isocalendar()
datetime_obj.isoformat(sep)
datetime_obj.ctime()#datetime对象 转 时间字符串 等同下面的一行
datetime_obj.strftime('%a %b %d %H:%M:%S %Y')#datetime对象 转 时间字符串
datetime.timedelta(days=float,seconds=float,weeks=float,minutes=float,hours=float,microseconds=float)#时间计算 不能计算年月 只能和 datetime对象计算#dateutil 用于datetime时间处理
from dateutil.parser import parse
datetime_obj=parse('2018.10.21 5:5:5')#任意时间字符串 转 datetime对象
#年份放在前面时 只能按年-月-日的顺序
#分隔符为逗号时 只有月-日时 要把月放在前面 有年份时 年份要放在后面
datetime_obj=parse("2018/10/21")
from dateutil import rrule
rrule.rrule(freq=rrule.UNIT, dtstart=datetime_obj, interval=int or tuple, wkst=rrule.WEEK,count=int or tuple, until=datetime_obj, bysetpos=index,bymonth=int or tuple, bymonthday=int or tuple, byyearday=int or tuple, byeaster=int or tuple,byweekno=int or tuple, byweekday=rrule.WEEK or tuple, byhour=int or tuple, byminute=int or tuple, bysecond=int or tuple)#从指定日期范围 返回所有符合要求的datetime对象 组成的rrule对象
freq#单位 可以是 rrule.YEARLY, MONTHLY, WEEKLY,DAILY, HOURLY, MINUTELY, SECONDLY 即年月日周时分秒
dtstart,until#是开始和结束 datetime对象
wkst#每周的第一天是星期几 默认rrule.MO 星期一
interval#间隔 默认值为1
count#只计算count个 符合要求的日期
bymonth#月 1-12
bymonthday#月的第几天 1-31 -1--31
byyearday#年的第几天 1-366 -366--1
byweekno#年的第几周 1-53 -53--1
byweekday#周的第几天 rrule.MO,TU,WE,TH,FR,SA,SU
byhour#第几小时 0-23
byminute#第几分 0-59
bysecond#第几秒 0-59
bysetpos#日期格式里的第几天 取值范围 1-366 或 -366--1
byeaster#复活节 0为复活节当天 其他数字为从复活节当日偏移的日期list(rrule.rrule(rrule.DAILY,byweekday=(rrule.SA,rrule.SU),dtstart=parse('2018-11-1'),until=parse('2018-11-5')))#只要周六和周日
>>>[datetime.datetime(2018, 11, 3, 0, 0),
datetime.datetime(2018, 11, 4, 0, 0)]
rrule.rrule(freq,dtstart=parse('date'),until=datetime.date.today()).count()#计算某个日期到今天相差freq数
rrule.rrule(rrule.YEARLY,interval=2,bymonth=1,byweekday=rrule.SU,byhour=(8,9), byminute=30)#每两年的一月,周日的8点30分和9点30分
rrule.rrule(rrule.MONTHLY,byweekday=(rrule.MO,rrule.TU,rrule.WE,rrule.TH,rrule.FR,rrule.SA,rrule.SU),bysetpos=-1)#每月的最后一天工作日
rrule.rrule(rrule.MONTHLY,count=3,byweekday=(rrule.TU,rrule.WE,rrule.TH),bysetpos=3)#在未来的3个月 每个月里的所有是星期二三四的日期 日期里的第3天#calendar 日历
import calendar
calendar.calendar(year,w=2,l=1,c=6)#返回一个月历 c是月份间距  w是日期间距 l是行距 不填会设置为默认间距
calendar.isleap(year)#是闰年返回 True 否则为 False
calendar.leapdays(y1,y2)#返回在Y1 Y2两年之间的闰年总数
calendar.month(year,month,w=2,l=1)#返回一个多行字符串格式的year年month日历 w是日期间距 l是行距 不填会设置为默认间距
calendar.timegm(struct_time_obj)
#struct_time对象 转 unix时间戳
calendar.monthrange(year,month)#返回(int,day_int)#第一个是该月的第一天是星期几 0-6~MO-SU 第二个是该月有多少天 28-31
days_list=calendar.mdays#本年每个月的天数组成的列表

这篇关于最易懂的笔记整理 时间模块应用及处理 time datetime dateutil calendar 建议收藏的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/913095

相关文章

解决docker目录内存不足扩容处理方案

《解决docker目录内存不足扩容处理方案》文章介绍了Docker存储目录迁移方法:因系统盘空间不足,需将Docker数据迁移到更大磁盘(如/home/docker),通过修改daemon.json配... 目录1、查看服务器所有磁盘的使用情况2、查看docker镜像和容器存储目录的空间大小3、停止dock

Python sys模块的使用及说明

《Pythonsys模块的使用及说明》Pythonsys模块是核心工具,用于解释器交互与运行时控制,涵盖命令行参数处理、路径修改、强制退出、I/O重定向、系统信息获取等功能,适用于脚本开发与调试,需... 目录python sys 模块详解常用功能与代码示例获取命令行参数修改模块搜索路径强制退出程序标准输入

Python pickle模块的使用指南

《Pythonpickle模块的使用指南》Pythonpickle模块用于对象序列化与反序列化,支持dump/load方法及自定义类,需注意安全风险,建议在受控环境中使用,适用于模型持久化、缓存及跨... 目录python pickle 模块详解基本序列化与反序列化直接序列化为字节流自定义对象的序列化安全注

利用Python操作Word文档页码的实际应用

《利用Python操作Word文档页码的实际应用》在撰写长篇文档时,经常需要将文档分成多个节,每个节都需要单独的页码,下面:本文主要介绍利用Python操作Word文档页码的相关资料,文中通过代码... 目录需求:文档详情:要求:该程序的功能是:总结需求:一次性处理24个文档的页码。文档详情:1、每个

5 种使用Python自动化处理PDF的实用方法介绍

《5种使用Python自动化处理PDF的实用方法介绍》自动化处理PDF文件已成为减少重复工作、提升工作效率的重要手段,本文将介绍五种实用方法,从内置工具到专业库,帮助你在Python中实现PDF任务... 目录使用内置库(os、subprocess)调用外部工具使用 PyPDF2 进行基本 PDF 操作使用

分析 Java Stream 的 peek使用实践与副作用处理方案

《分析JavaStream的peek使用实践与副作用处理方案》StreamAPI的peek操作是中间操作,用于观察元素但不终止流,其副作用风险包括线程安全、顺序混乱及性能问题,合理使用场景有限... 目录一、peek 操作的本质:有状态的中间操作二、副作用的定义与风险场景1. 并行流下的线程安全问题2. 顺

Python异常处理之避免try-except滥用的3个核心原则

《Python异常处理之避免try-except滥用的3个核心原则》在Python开发中,异常处理是保证程序健壮性的关键机制,本文结合真实案例与Python核心机制,提炼出避免异常滥用的三大原则,有需... 目录一、精准打击:只捕获可预见的异常类型1.1 通用异常捕获的陷阱1.2 精准捕获的实践方案1.3

Java中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例解析

《Java中的分布式系统开发基于Zookeeper与Dubbo的应用案例解析》本文将通过实际案例,带你走进基于Zookeeper与Dubbo的分布式系统开发,本文通过实例代码给大家介绍的非常详... 目录Java 中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例一、分布式系统中的挑战二

Pandas处理缺失数据的方式汇总

《Pandas处理缺失数据的方式汇总》许多教程中的数据与现实世界中的数据有很大不同,现实世界中的数据很少是干净且同质的,本文我们将讨论处理缺失数据的一些常规注意事项,了解Pandas如何表示缺失数据,... 目录缺失数据约定的权衡Pandas 中的缺失数据None 作为哨兵值NaN:缺失的数值数据Panda

C++中处理文本数据char与string的终极对比指南

《C++中处理文本数据char与string的终极对比指南》在C++编程中char和string是两种用于处理字符数据的类型,但它们在使用方式和功能上有显著的不同,:本文主要介绍C++中处理文本数... 目录1. 基本定义与本质2. 内存管理3. 操作与功能4. 性能特点5. 使用场景6. 相互转换核心区别