20220324

https://mp.weixin.qq.com/s/zd_8LLgJTNx6iav8-yTcEQ
python处理日期时间库汇总

https://blog.csdn.net/eylier/article/details/111145748
阴历阳历转换

https://pypi.org/project/chinesecalendar/
中国节假日识别,不是很准确

20220223

this_year_begin_date = '2020' + "-" + '52' + "-1"
next_year_begin_date = '2021' + "-" + '0' + "-1"
this_year_begin_date = time.strptime(this_year_begin_date, "%Y-%U-%w")
this_year_begin_date = time.strftime("%Y-%m-%d", this_year_begin_date)
this_year_begin_datenext_year_begin_date = time.strptime(next_year_begin_date, "%Y-%U-%w")
next_year_begin_date = time.strftime("%Y-%m-%d", next_year_begin_date)
next_year_begin_date当两年交界的一周同时含有两年的天数时候,前一年的最后一周
与下一年的第0周实际上指的同一周ValueError: day of year out of range
减一周就好了

20211216

from datetime import datetime
today = datetime.now()
day = today.day

20211130

时间周序号对齐包括跨年
见工程化

############today = pd.to_datetime(run_date)this_year_begin_date,this_year_end_date,last_year_begin_date,last_year_end_date = utils.confirm_date_range(today)def cross_year(this_year_begin_week_num,this_year):''':param this_year_begin_week_num:  末尾周序号减周间隔的差值:param this_year: 当年年份:return: 确定是当年开始周序号'''this_year_begin_date_confirm = ''# 如果取的时间跨年了if this_year_begin_week_num < 0:begin_week_year = int(this_year) - 1begin_week_year = str(begin_week_year)max_date = begin_week_year + '-12-31'max_date = pd.to_datetime(max_date)max_week_num = max_date.isocalendar()[1]this_year_begin_week_num = max_week_num - abs(this_year_begin_week_num) this_year_begin_week_num = str(this_year_begin_week_num)this_year_begin_date = begin_week_year + "-" + this_year_begin_week_num + "-1"this_year_begin_date = time.strptime(this_year_begin_date, "%Y-%U-%w")this_year_begin_date = time.strftime("%Y-%m-%d", this_year_begin_date)this_year_begin_date_confirm = this_year_begin_dateelse:this_year_begin_week = this_year_begin_week_numthis_year_begin_week = str(this_year_begin_week)this_year_begin_date = this_year + "-" + this_year_begin_week + "-1"this_year_begin_date = time.strptime(this_year_begin_date, "%Y-%U-%w")this_year_begin_date = time.strftime("%Y-%m-%d", this_year_begin_date)this_year_begin_date_confirm = this_year_begin_datereturn this_year_begin_date_confirmdef confirm_date_range(today):''':param today: 输入的日期:return: 返回确认的取数时间范围'''# 返回上一周的周日日期last_sunday_date = utils.check_sunday(today)this_year = last_sunday_date.yearthis_year = str(this_year)this_year_end_week_num = last_sunday_date.isocalendar()[1]this_year_begin_week_num = this_year_end_week_num - 7this_year_begin_date = cross_year(this_year_begin_week_num,this_year)this_year_end_date = deepcopy(last_sunday_date)last_year = int(this_year) -1last_year = str(last_year)last_year_end_week_num = this_year_end_week_numlast_year_begin_week_num = this_year_begin_week_num -1last_year_begin_date = cross_year(last_year_begin_week_num,last_year)last_year_end_week_num = str(last_year_end_week_num)last_year_end_date = last_year + "-" + last_year_end_week_num + "-0"last_year_end_date = time.strptime(last_year_end_date, "%Y-%U-%w")last_year_end_date = time.strftime("%Y-%m-%d", last_year_end_date)return (this_year_begin_date,this_year_end_date,last_year_begin_date,last_year_end_date,

20211118

today = datetime.now()
today = today.date()
today = pd.to_datetime('2021-11-01')today = utils.check_monday(today)this_year = today.year
this_year = str(this_year)
# 检查是否为周一,不是就运行上一个周一this_year_end_week_num = today.isocalendar()[1] - 1
this_year_begin_week_num = this_year_end_week_num - 6
this_year_week_range = [this_year_begin_week_num,this_year_end_week_num]
this_year_begin_week = this_year_begin_week_num
this_year_begin_week = str(this_year_begin_week)
this_year_begin_date = this_year + '-' + this_year_begin_week + "-1"
this_year_begin_date = time.strptime(this_year_begin_date,'%Y-%U-%w')
this_year_begin_date = time.strftime('%Y-%m-%d',this_year_begin_date)# 上一个周日
this_year_end_date = utils.get_recent_sunday(today)
this_year_end_date = this_year_end_date.date()last_year = this_year_end_date.year - 1
last_year = str(last_year)
last_year_end_date = this_year_end_date
last_year_end_date = str(last_year_end_date)
last_year_end_date = last_year_end_date[4:]
last_year_end_date = last_year + last_year_end_date
last_year_end_date = pd.to_datetime(last_year_end_date)last_year_begin_date = deepcopy(this_year_begin_date)
last_year_begin_date = str(last_year_begin_date)
last_year_begin_date = last_year_begin_date[4:]
last_year_begin_date = last_year + last_year_begin_date
last_year_begin_date = pd.to_datetime(last_year_begin_date)
last_year_begin_date = last_year_begin_date - pd.Timedelta(6,unit='D')无法直接对年进行加减,需要拼接

https://blog.csdn.net/badassname11/article/details/118160189

%Y 四位数的年份表示(000-9999)
%U 一年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为星期的开始

通过周序号获得所对应的日期

20211022

https://blog.csdn.net/u014401742/article/details/90592739
时间戳格式化

一、时间datetime

In [10]: pd.datetime(2018,4,1)
Out[10]: datetime.datetime(2018, 4, 1, 0, 0)

二、时间戳Timestamp
表示时间轴上的一个时刻。它提供了方便的时区转换功能。

调用Timestamp()创建任意时间点:

In [98]: pd.Timestamp('2018-08-1 08:02:35')
Out[98]: Timestamp('2018-08-01 08:02:35')
三、时间段Period
Period表示一个标准的时间段。例如某年、某月、某日、某小时等。时间的长短由freq决定。调用Period()创建任意时间段:In [100]: pd.Period('2018-08-1 08:02:35',freq='M')
Out[100]: Period('2018-08', 'M')

四、时间间隔Timedetla
通过调用pd.Timedelta()之间创建时间间隔Timedelta对象:

In [102]: pd.Timedelta(weeks=2,days=10,hours=12,minutes=2.4,seconds=10.3)
Out[102]: Timedelta('24 days 12:02:34.300000')

五、时间对象之间的转换
时间戳Timestamp转换为时间段Period

In [104]: pd.Timestamp('2018-08-1 08:02:35').to_period(freq='S')
Out[104]: Period('2018-08-01 08:02:35', 'S')

时间段Period转换为时间戳Timestamp

In [105]: pd.Period('2018-08-1 08:02:35',freq='M').to_timestamp()
Out[105]: Timestamp('2018-08-01 00:00:00')

将两个时间戳Timestamp相减得到时间间隔Timedelta对象

In [106]: pd.Timestamp('2018-08-1 08:02:35')-pd.Timestamp('2018-08-1 07:02:35')
Out[106]: Timedelta('0 days 01:00:00')

六、时间解析
strptime(str)将字符串转换为时间(需要指定格式)

In [11]: value='2018,3,1'
In [12]: pd.strptime(value,'%Y-%m-%d') #将字符串转换为时间
Out[12]: datetime.datetime(2018, 3, 1, 0, 0)

第三方库dateutil.parser的时间解析函数(此时不需要指定格式)

In [14]: from dateutil.parser import parse
In [15]: parse(value)
Out[15]: datetime.datetime(2018, 3, 1, 0, 0)

七、格式定义

格式   说明
%Y  4位数的年
%y  2位数的年
%m  2位数的月[01,12]
%d  2位数的日[01,31]
%H  时(24小时制)[00,23]
%l  时(12小时制)[01,12]
%M  2位数的分[00,59]
%S  秒[00,61]有闰秒的存在
%w  用整数表示的星期几[0(星期天),6]
%F  %Y-%m-%d简写形式例如,2017-06-27
%D  %m/%d/%y简写形式

时间处理_pandas_时间处理小结相关推荐

  1. mysql中的dateDayOfYear_Mysql 常用的时间日期及转换函数小结

    本文主要是总结一些常用的在实际运用中常用的一些mysql时间日期以及转换的函数 1.now()  :返回当前日期和时间 select now(); //2018-04-21 09:19:21 2.cu ...

  2. 活动图求最少时间和松弛时间

    一.介绍 PERT(Program/Project Evaluation and Review Technique)即计划评审技术,PERT是利用网络分析制定计划以及对计划予以评价的技术. 构造PER ...

  3. js实现UTC时间转为北京时间,时间戳转为时间

    用了阿里云的接口,发现其穿的日期是UTC格式的.需要转换. var utc_datetime = "2017-03-31T08:02:06Z";function utc2beiji ...

  4. 更改c语言程序保存地址吗,(C语言)修改文件时间程序(创建时间、修改时间、访问时间)...

    背景 在某些情况下,我们需要对文件时间进行修改,在这里主要和大家分享一下修改文件创建时间.修改时间和访问时间的程序,C语言编写. 解决方案 我们主要调用Windows API,直接修改文件时间为自己任 ...

  5. R语言ggplot2可视化:可视化所有日期不同时段任务的持续时间、将持续时间绘制成一条线(起始时间到结束时间),y轴表示活动发生的日期,x轴表示以小时为单位的时间

    R语言ggplot2可视化:可视化所有日期不同时段任务的持续时间.将持续时间绘制成一条线(起始时间到结束时间),y轴表示活动发生的日期,x轴表示以小时为单位的时间(duration of an act ...

  6. R语言ggplot2可视化:可视化所有日期不同时段任务的持续时间、将持续时间绘制成一条线(起始时间到结束时间),y轴表示活动发生的日期,x轴表示以小时为单位的时间、适应时间段跨越多天的情况

    R语言ggplot2可视化:可视化所有日期不同时段任务的持续时间.将持续时间绘制成一条线(起始时间到结束时间),y轴表示活动发生的日期,x轴表示以小时为单位的时间.适应时间段跨越多天的情况(例如,当天 ...

  7. Pandas把dataframe中的整数数值(integer)转化为时间(日期、时间)信息实战

    Pandas把dataframe中的整数数值(integer)转化为时间(日期.时间)信息实战 目录 Pandas把dataframe中的整数数值转化为时间(日期.时间)信息实战

  8. linux校时写入硬件,手动校正 Linux 系统时间并把时间写入硬件,系统启动时自动校正时间并把时间写入硬件。...

    手动校正 Linux 系统时间并把系统时间写入硬件,系统启动时自动校正时间并把时间写入硬件. 下面以 CentOS 6.5 (32位)系统为例,设置系统时间:手动校正 Linux 系统时间并把时间写入 ...

  9. c语言utc时间转换北京时间_C/C++标准库之转换UTC时间到local本地时间详解

    前言 UTC 时间DateTime.UtcNow 和 系统本地时间 DateTime.Now 相差8个时区 ,美国本地时间和北京时间相差15个时区: 美国,而一般使用UTC时间方便统一各地区时间差异. ...

最新文章

  1. Pytorch中的向前计算(autograd)、梯度计算以及实现线性回归操作
  2. es查询java代码如何排序_elasticsearch 查询聚合结果排序
  3. LeetCode Reverse Linked List II 反置链表2
  4. SQL Server 安装好后 Always On群组配置
  5. POJ2417 Discrete Logging | A,C互质的bsgs算法
  6. Unicode(UTF-8, UTF-16)令人混淆的概念
  7. 学点 C 语言(20): 数据类型 - 指针
  8. PPT将图片变为平行四边形形状
  9. 计算机人文研究生专业,西安科技大学,艺术、人文、材料、计算机、通信等专业调剂信息...
  10. CSS3进度条 和 HTML5 Canvas画圆环
  11. android开发 问卷调查案例_android 实现调查问卷-单选-多选
  12. 雅猴的脚印——2019年下半年
  13. fft算法c语言复数结果是啥,算法-为什么FFT产生复数而不是实数?
  14. CabloyJS一站式助力微信、企业微信、钉钉开发 - 钉钉篇
  15. word设置页码不在第一页开始;删除页眉横线的小技巧
  16. 人像修图怎么修脸部瑕疵
  17. termux 安装 kali
  18. 关联规则:营销购物,自有乾坤
  19. 服务器信号有杂音怎么回事,直播有杂音是怎么回事?奉上原因及解决方法
  20. 计算机二级excel中mid的用法,mid函数在excel中的使用方法

热门文章

  1. 2022-2028年中国微型汽车市场投资分析及前景预测报告
  2. php多表存储,php – MySql在一个单元格中存储另一个表的多个引用并选择它?
  3. 加解密基础——(对称加密、非对称加密和混合加密)
  4. Python 类—类属性(私有属性、公有属性、实例属性、局部变量)类方法(实例方法、静态方法)
  5. 认清自己,愉快度过每一天
  6. pycharm连接远程服务器并进行代码上传+远程调试
  7. LeetCode简单题之将每个元素替换为右侧最大元素
  8. 万事开头难!最新MyBatis程序配置教程(IDEA版)
  9. Linux实现ffmpeg H.265视频编码
  10. CUDA运行时 Runtime(四)