Python timedelta(转)

Python 时间对象 时间字符串 时间戳 相关转换 加减 时间转字符串 时间戳转时间对象(1) 这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新** 阅读详情
datetime.timedelta对象代表两个时间之间的的时间差,两个date或datetime对象相减时可以返回一个timedelta对象。
 
构造函数:
class  datetime. timedelta ( [ days [ ,  seconds [ ,  microseconds [ ,  milliseconds [ ,  minutes [ ,  hours [ ,  weeks ] ] ] ] ] ] ] )
所有参数可选,且默认都是0,参数的值可以是整数,浮点数,正数或负数。
 
内部只存储 days,seconds,microseconds,其他参数的值会自动按如下规则抓转换:
 
  • 1 millisecond(毫秒) 转换成 1000 microseconds(微秒)
  • 1 minute 转换成 60 seconds
  • 1 hour 转换成 3600 seconds
  • 1 week转换成 7 days
三个参数的取值范围分别为:
 
  • 0 <= microseconds < 1000000
  • 0 <= seconds < 3600*24 (the number of seconds in one day)
  • -999999999 <= days <= 999999999
如果任意参数是float,且小数点后含有microseconds部分,那么microseconds的值为所有参数的微秒部分的总和(四舍五入)如:
Python代码    收藏代码
  1. >>> datetime.timedelta(hours=1.232,seconds=20).microseconds  
  2. 200000  
  3. >>> datetime.timedelta(hours=1.232,seconds=20.3).microseconds  
  4. 500000  

 

支持的操作有:

1 = t2 + t3两个timedelta对象相加,同时满足 t1-t2 == t3 and t1-t3 == t2 为True
t1 = t2 - t3两个timedelta对象相减, 同时满足 t1 == t2 - t3 and t2 == t1 + t3 为True
t1 = t2 * i or t1 = i * t2timedelta对象分别乘以i 同时满足 t1 // i == t2 为True, 且 i != 0
t1 = t2 // i向下取整,余数部分被丢弃
+t1返回和t1相同值的timedelta对象
-t1取反操作,等价于timedelta(-t1.days, -t1.seconds, -t1.microseconds)和 t1* -1
abs(t)绝对值,等价于: +t 当 t.days >= 0,  -t 当 t.days < 0
str(t)返回字符串,格式为: [D day[s], ][H]H:MM:SS[.UUUUUU]
repr(t)返回字符串,格式为: datetime.timedelta(D[, S[, U]])

 

此外,timedelta和可以和date,datetime对象进行加减操作,如:
Python代码    收藏代码
  1. >>> datetime.datetime.now()  
  2. datetime.datetime(2013, 5, 23, 10, 49, 27, 182057)  
  3. >>> datetime.datetime.now()+datetime.timedelta(2)  
  4. datetime.datetime(2013, 5, 25, 10, 49, 29, 385559)  
 
Python2.7新增了方法:
 
timedelta. total_seconds ( )
用于计算秒数。等价于:(td.microseconds + (td.seconds + td.days * 24 * 3600) * 10**6) / 10**6
 
实例1:
'''时间d距离now()的长度,比如:1分钟前,1小时前,1月前,1年前'''
 
Python代码    收藏代码
  1. # -*- encoding=UTF-8 -*-  
  2. import datetime  
  3. def timebefore(d):  
  4.      chunks = (  
  5.                        (60 * 60 * 24 * 365, u'年'),  
  6.                        (60 * 60 * 24 * 30, u'月'),  
  7.                        (60 * 60 * 24 * 7, u'周'),  
  8.                        (60 * 60 * 24, u'天'),  
  9.                        (60 * 60, u'小时'),  
  10.                        (60, u'分钟'),  
  11.      )  
  12.      #如果不是datetime类型转换后与datetime比较  
  13.     if not isinstance(d, datetime.datetime):  
  14.            d = datetime.datetime(d.year,d.month,d.day)  
  15.     now = datetime.datetime.now()  
  16.     delta = now - d  
  17.     #忽略毫秒  
  18.     before = delta.days * 24 * 60 * 60 + delta.seconds  #python2.7直接调用 delta.total_seconds()  
  19.     #刚刚过去的1分钟  
  20.     if before <= 60:  
  21.            return u'刚刚'  
  22.     for seconds,unit in chunks:  
  23.            count = before // seconds  
  24.            if count != 0:  
  25.                  break  
  26.     return unicode(count)+unit+u"前"  

 实例2:

‘’‘当前的时间上加一天或一年减一天等操作’‘’

 

Python代码    收藏代码
  1. #!/usr/bin/env python  
  2. # -*- coding:utf-8 -*-  
  3.   
  4. from datetime import datetime,timedelta  
  5.   
  6. now = datetime.now()  
  7.   
  8. yestoday = now - timedelta(days=1)  
  9. tommorow = now + timedelta(days=1)  
  10.   
  11. next_year = now + timedelta(days = 365) 

例子:

import time

import datetime

def datetime2timestamp(dt, convert_to_utc=False):

    ''' Converts a datetime object to UNIX timestamp in milliseconds. '''

    if isinstance(dt, datetime.datetime):

        if convert_to_utc: # 是否转化为UTC时间

            dt = dt + datetime.timedelta(hours=-8) # 中国默认时区

        timestamp = datetime.timedelta.total_seconds(dt - datetime.datetime(1970,1,1))

        return long(timestamp)

    return dt

def timestamp2datetime(timestamp, convert_to_local=False):

    ''' Converts UNIX timestamp to a datetime object. '''

    if isinstance(timestamp, (int, long, float)):

        dt = datetime.datetime.utcfromtimestamp(timestamp)

        if convert_to_local: # 是否转化为本地时间

            dt = dt + datetime.timedelta(hours=8) # 中国默认时区

        return dt

    return timestamp


def timestamp_utc_now():

    return datetime2timestamp(datetime.datetime.utcnow())


print datetime.datetime.utcnow()

print timestamp_utc_now()


数据偏移:使用 timedelta 对指定时间数据列进行偏移的 Python 实现 Python 提供了 datetime 模块中的 timedelta 类,可以方便地对时间进行加减操作。本文将介绍如何使用 timedelta 对指定时间数据列进行偏移的方法,并提供相应的源代码示例。接下来,假设我们有一个包含时间数据的列表或数组,我们要对其中的每个时间值进行偏移。综上所述,通过使用 timedelta 对象,我们可以方便地对指定时间数据列进行偏移操作。最后,如果要将偏移后的 datetime 对象转换回时间字符串,可以使用 strftime 方法。列表中的每个元素都是偏移后的时间字符串。 阅读详情

相关推荐

Plecs仿真进阶:半桥LLC谐振变换器从开环到闭环的实战解析

本文通过Plecs软件,详细解析了半桥LLC谐振变换器从开环模型搭建到闭环控制实现的完整仿真流程。文章深入探讨了谐振参数设置、关键波形解读,并重点分享了基于PI控制器的闭环调试实战经验与参数整定技巧,帮助工程师高效掌握这一高效拓扑的仿真与设计方法。

weixin_29231263的博客 281

python datetime.timedelta()函数介绍

python timedelta 函数介绍

LOVEYSUXIN的专栏 3万+

告别手动维护!教你用SAP BAPI批量更新生产订单BOM组件(CO02工单)

本文详细介绍了如何利用SAP BAPI实现生产订单BOM组件的批量更新,解决传统手工操作(如CO02工单)效率低下的问题。通过核心函数解析和批量处理框架设计,帮助用户大幅提升工作效率,降低错误率,适用于物料主数据变更、季节性配方调整等场景。

weixin_30844577的博客 561

python 自定义时间 加减天数

import datetime # 现在的时间 setTime ='2015-04-16' now=datetime.datetime.strptime(setTime,'%Y-%m-%d') print(now) # 递增的时间 delta = datetime.timedelta(days=1) # 88天后的时间 endnow = now + datetime.timedelta(d...

sinat_35645479的博客 4353

中国知网文献引用导入EndNote9.X,Web of science导入endnote以及谷歌学术导入endnote图文详解,全网最细版本适用EndNote9.x,Endnote20版本

在科研中用到EndNote管理文献,遇到插入文献时,中国知网如何将参考文献导进Endnote9.x或者web of sicence,谷歌学术如何将文章,文献导入进文献管理软件EndNote的详细图文2022版本解释,全网最细的笔记教程,值得大家参考收藏学习

sakura的博客 5177

在中国大陆使用 LiveKit 集成阿里云语音交互服务

通过集成阿里云的语音和模型服务,我们可以快速构建出适合中国用户的 LiveKit 智能语音应用。LiveKit Agents 框架的模块化设计使得替换底层服务变得异常简单,只需要更换相应的插件实例即可。使用 WebSocket 版本的阿里云 ASR 接口以获得更低的延迟。利用通义千问的 Function Calling 能力对接智能家居或企业内部 API。结合 LiveKit 的视频处理能力,打造具备视觉交互的数字人。希望这篇博客能为你在实时音视频与 AI 结合的探索之路上提供帮助!

星空漫野 1237

datetime.timedelta类介绍

datetime.timedelta对象代表两个时间之间的时间差,两个date或datetime对象相减就可以返回一个timedelta对象。 如果有人问你昨天是几号,这个很容易就回答出来了。但是如果问你200天前是几号,就不是那么容易答出来。而在Python中datetime模块中的timedelta就可以很轻松给出答案。 函数原型: class datetime.timedelta([d

sunjinjuan的博客 17万+

如何用ggplot2绘制专业级双侧柱状图展示GO富集结果(附完整代码)

本文详细介绍了如何使用R语言的ggplot2包绘制专业级双侧柱状图展示GO富集结果,包括数据预处理、基础图形构建、高级样式定制和出版级细节调整。通过完整的代码示例和实用技巧,帮助生物信息学研究人员高效可视化高通量数据,提升学术图表的质量和可读性。

weixin_30342209的博客 77

python中的时间处理模块(二):datetime模块之timedelta类详解

1、datetime模块   datatime模块是在time模块的基础之上做了封装,提供了更多更好用的类供我们使用,常用的有date、time、datetime、timedelta、tzinfo。但是为了更灵活的处理时间,最好是将time模块和datetime模块中的精髓学习到。 ① date类:主要用于处理年、月、日; ② time类:主要用于处理时、分、秒; ③ datetime类:dat...

数据分析与统计学之美 7万+

DSMA时序修复避坑指南:当Setup和Hold互卡时,除了调Margin还能做什么?

本文深入探讨DSMA时序修复中的Setup与Hold互锁问题,提供7种高阶策略,包括优先级判断、高级参数组合、单元类型智能替换等,帮助工程师突破时序收敛瓶颈。特别针对fix_eco_timing命令的隐藏参数和物理协同优化进行详细解析,助力芯片设计实现时序收敛。

weixin_30162121的博客 297

Switch游戏安装新思路:抛弃Commander One,试试这款免费的Mac神器OpenMTP

本文介绍了Mac用户安装Switch游戏的新选择——免费工具OpenMTP,对比收费软件Commander One,OpenMTP在MTP连接稳定性和文件管理上更具优势。详细解析了OpenMTP的安装配置、核心功能及实战操作,帮助用户高效完成游戏安装,特别适合已破解并安装DBI的Switch用户。

weixin_30664051的博客 586

Python time datetime timedelta

时间戳(timestamp) :通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型格式化的时间字符串(Format String):“1999-12-06”%y 两位数的年份表示(00-99)%Y 四位数的年份表示(000-9999)%m 月份(01-12)%d 月内中的一天(0-31)%H 24小时制小时数(0-23)%I 12小时制小时数(01-12)%M 分钟数(00=59)

cliffordl的专栏 1774

基于 Simulink 的固态变压器(SST)多级协同控制实战教程

《固态变压器多级协同控制仿真指南》摘要: 本教程详细讲解了基于Simulink的固态变压器(SST)三级架构建模与控制方法。核心内容包含:1)搭建级联H桥整流(CHB)、双有源桥(DAB)和逆变器(VSI)的三级主电路;2)提出创新的多级协同控制策略,通过功率前馈实现输入输出级动态匹配;3)给出系统级功率平衡、单元级均压控制的具体实现方案。教程特别强调解决实际工程中的关键问题:代数环处理、软启动设计和刚性系统求解器选择,并提供了硬件在环(HIL)仿真建议。附带的MATLAB代码示例可直接用于实现电容电压均衡

xiaoheshang_123的博客 120

python中TimeDelta转int

td.days td.seconds

Zyh's blog 2309

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

python timedelta转str_python 中date datetime time 与str的互转

以下全部引入form datetime import datetime, timedeltaimport time一、time 转str二、datetime 转 strstr_date = datetime.now().strftime("%Y-%m-%d") -------(%04d%02d%02d)此种格式化注意三、str 转 datetimestart_date = datetime.s...

weixin_34847198的博客 1954

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

python 月份加减,Python日期的加减等操作的示例

本文介绍了Python日期的加减等操作的示例,分享给大家,也给自己留个笔记1. 日期输出格式化所有日期、时间的api都在datetime模块内。1. datetime => stringnow = datetime.datetime.now()now.strftime('%Y-%m-%d %H:%M:%S')#输出2012-03-05 16:26:23.870105strftime是date...

weixin_34365489的博客 3440

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

python时间和字符串的格式化互相转换

python经常需要时间格式转化,可以采用 time或者datetime模块进行处理,常用的有以下几个函数: (1)strftime 日期转字符串 (2)strptime字符串转日期 (3)timedelta 时间差 本文采用import datetime 的方式 进行时间处理。 1)格式化输出时间(时间转字符串)和strptime字符串转日期,strftime和strptime 常用参数: # %y 两位数的年份表示(00-99) # %Y 四位数的年份表示(000-9999) # %m 月份(01-1

for_further的博客 1万+

python datetime、date、time、string、timedelta等详解(格式转换)

python的datetime、date、time、string、timedelta详解笔记

wushang1102的博客 1849

Python pandas.to_timedelta

是 Pandas 中将各种表示“时间间隔”的数据(如字符串、整数、timedelta对象)的函数。

weixin_40203719的博客 407

python datetime库_Python标准库笔记(3) — datetime模块

datetime模块提供了简单和复杂的方式用于操纵日期和时间的类。虽然支持日期和时间运算,但实现的重点是为了输出格式化和操作高效地提取属性。1. 模块内容内容描述常量datetime.MINYEARdate和datetime对象允许的最小年份datetime.MAXYEARdate和datetime对象允许的最大年份类datetime.date日期对象,属性(year, month, day)da...

weixin_39624733的博客 201

python时间计算_python,时间加减,时间计算,时间格式化,时间提取汇总

我要解决的问题是,发现某个文件超过30分钟时间不被更新,则报警>>> t1=[2010,11,9,19,20,30] #2010年11月9日 19:30:30>>> last_time=datetime.datetime(t1[0],t1[1],t1[2].t1[3],t1[4],t1[5]) #上次更新时间>>> now_time = datetime.datetime.now() #当前时间>...

weixin_39880318的博客 149

Python日期时间函数 datatime

所有日期、时间的api都在datetime模块内。 1. 日期输出格式化 datetime => string import datetime now = datetime.datetime.now() now.strftime('%Y-%m-%d %H:%M:%S') 输出 ‘2020-02-25 19:11:21’ strftime是datetime类的实例方法。 2. 日期输...

wangan_wangan的博客 904

Python标准库笔记(3) — datetime模块

1. 模块内容 内容 描述 常量 datetime.MINYEAR date和datetime对象允许的最小年份 ...

chenxuan5849的博客 127

python时间间隔函数_(转载)python日期函数

转载于http://www.cnblogs.com/emanlee/p/4399147.html所有日期、时间的api都在datetime模块内。1. 日期输出格式化 datetime => stringimport datetimenow = datetime.datetime.now()now.strftime('%Y-%m-%d %H:%M:%S')输出'2015-04-07 19:11:2...

weixin_39990410的博客 186
上一篇: FIX协议结构及工作流程(转)
下一篇: fix协议中消息尾校验方法
woodcol
博客等级 码龄19年 288粉丝 429原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值