怎么用Python实现时间加减运算

2021-04-02 10:14发布

23条回答
一个Ai
2楼 · 2021-04-02 10:41

Python中的time与datetime基本是你中有我,我中有你的关系,有时只想操作一部分反而不那么方便。


在码代码的过程中,需要从某个日期往前或者往后推移,手动计算又要考虑跨月份的问题。


经过阅读python官方文档,找到了日期加减推移运算的方法。


关键词是timedelta。


一个日期可以和一个日期增量相加减。那么,推算日期、时间的功能就好实现了。


 d = datetime.datetime(100, 1, 1)#.today()

 print(d)

 delta = datetime.timedelta(days=100)

 d -= delta

 print(d)

1

2

3

4

5

输出如下:


0100-01-01 00:00:00

0099-09-23 00:00:00

1

2

把取当前日期的注释打开,输出如下:


2017-04-22 21:28:30.545459

2017-01-12 21:28:30.545459

1

2

timedelta

关于timedelta,有days、seconds、micorseconds共3个属性值可以设置。


会不会问个傻问题呢?为什么没有年,没有月,没有分钟、小时?

当然,年可以不要,直接减法不需要借位进位。但是月份会有借位进位的问题啊。为啥不提供轮子。

难道是想要使用者去将大单位的转换成小的单位再用么。


yjh
3楼 · 2021-04-02 11:03

1、方便的计算两个时间的差,如两个时间相差几天,几小时:

import datetime

d1 = datetime.datetime(2009, 3, 23)

d2 = datetime.datetime(2009, 10, 7)

dayCount = (d1 - d2).days

2、python计算两个时间之间的秒数

import datetime

starttime = datetime.datetime.now()

#long running

endtime = datetime.datetime.now()

print (endtime - starttime).seconds

3、时间相加

d1 = datetime.datetime.now()

d3 = d1 + datetime.timedelta(days=10)

print d3.ctime()

计算当前时间向后10天的时间。参数可以是days, hours,minutes,seconds,microseconds,如果是负数就是向前多少时间其本上常用的类: datetime和timedelta两个。它们之间可以相互加减。每个类都有一些方法和属性可以查看具体的值,如 datetime可以查看:天数(day),小时数(hour),星期几(weekday())等;timedelta可以查看:天数(days),秒数 (seconds)等

是开心果呀 - 热爱生活
4楼 · 2021-04-02 12:37

1、使用timedelta就可以直接进行运算。


datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)

timedelta可以传入天数、小时、分、秒、星期、毫秒等。


2、日期要进行运算,我们需要将字符串转换成日期格式,就需要用到datetime的strptime

使用格式为datetime.strptime(date_string, format)



三岁奶猫
5楼 · 2021-04-02 13:20

1image.png

是你的小甜心呀
6楼 · 2021-04-02 13:39

1、使用timedelta就可以直接进行运算。


datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)

timedelta可以传入天数、小时、分、秒、星期、毫秒等。


2、日期要进行运算,我们需要将字符串转换成日期格式,就需要用到datetime的strptime

使用格式为datetime.strptime(date_string, format)


希希
7楼 · 2021-04-02 13:50

1、方便的计算两个时间的差,如两个时间相差几天,几小时:

import datetime

d1 = datetime.datetime(2009, 3, 23)

d2 = datetime.datetime(2009, 10, 7)

dayCount = (d1 - d2).days

2、python计算两个时间之间的秒数

import datetime

starttime = datetime.datetime.now()

#long running

endtime = datetime.datetime.now()

print (endtime - starttime).seconds

3、时间相加

d1 = datetime.datetime.now()

d3 = d1 + datetime.timedelta(days=10)

print d3.ctime()

计算当前时间向后10天的时间。参数可以是days, hours,minutes,seconds,microseconds,如果是负数就是向前多少时间其本上常用的类: datetime和timedelta两个。它们之间可以相互加减。每个类都有一些方法和属性可以查看具体的值,如 datetime可以查看:天数(day),小时数(hour),星期几(weekday())等;timedelta可以查看:天数(days),秒数 (seconds)等


梦到内河_
8楼 · 2021-04-02 14:07

1、使用timedelta就可以直接进行运算。


datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)

timedelta可以传入天数、小时、分、秒、星期、毫秒等。


2、日期要进行运算,我们需要将字符串转换成日期格式,就需要用到datetime的strptime

使用格式为datetime.strptime(date_string, format)


哈哈哈哈哈哈嗝
9楼 · 2021-04-02 14:31

python计算两个时间之间的秒数

import datetime

starttime = datetime.datetime.now()

#long running

endtime = datetime.datetime.now()

print (endtime - starttime).seconds