python进行日期的加减(秒-年)

1)使用datetime模块进行日期的加减

timedelta函数:参数不包含“年”、“月” 

【代码块】

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


import datetime

def result(v):
    print(type(v))
    print(v)
    print('\b')



# a='2021-09-01'  #给定一个开始日期
a=datetime.datetime.now()  
a=a.strftime("%Y-%m-%d")  #获取当前日期
result(a)

#将str格式的日期,解析为元祖格式,用于日期计算
b = datetime.datetime.strptime(a, "%Y-%m-%d")
result(b)


#日期做加减法
c=b-datetime.timedelta(days=10)
result(c)

#将datetime格式转换为str
d=c.strftime("%Y-%m-%d")
result(d)

【运行结果】

<class 'str'>
2021-09-01


<class 'datetime.datetime'>
2021-09-01 00:00:00


<class 'datetime.datetime'>
2021-08-22 00:00:00


<class 'str'>
2021-08-22

2)使用relativedelta函数,对日期进行加减

要使用relativedelta函数,需要先安装dateutil库。

【代码块】

"""
def __init__(self, dt1=None, dt2=None,
                 years=0, months=0, days=0, leapdays=0, weeks=0,
                 hours=0, minutes=0, seconds=0, microseconds=0,
                 year=None, month=None, day=None, weekday=None,
                 yearday=None, nlyearday=None,
                 hour=None, minute=None, second=None, microsecond=None)
"""

from dateutil.relativedelta import relativedelta
import datetime

def result(v):
    print(type(v))
    print(v)
    print('\b')

dt = '2021-9-2'
dt=datetime.datetime.strptime(dt,'%Y-%m-%d')
result(dt)


delta = dt + relativedelta(years=1)
result(datetime)

delta2 = delta.strftime('%Y-%m-%d')
result(delta2)

【运行结果】

<class 'datetime.datetime'>
2021-09-02 00:00:00


<class 'module'>
<module 'datetime' from '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/datetime.py'>


<class 'str'>
2022-09-02

3)demo

【代码块】


from dateutil.relativedelta import relativedelta
import datetime,time

today=datetime.datetime.now().strftime("%Y-%m-%d")  #[str]2021-09-03

now_timestamp=int(time.time())  #获取现在的时间戳
#获取今天0点的时间戳
today_datetime=time.strptime(today,"%Y-%m-%d")
today_timestamp=int(time.mktime(today_datetime))



#通过开时间时和周期,获取结束时间
"""
end_time=begin_time+relativedelta(months=cycle) #cycle=1,12
"""
def endday(begin_time,cycle):
    if isinstance(begin_time,str):
        begin_time=datetime.datetime.strptime(begin_time,"%Y-%m-%d")
        end_time=(begin_time+relativedelta(months=cycle,days=-1)).strftime("%Y-%m-%d")
        return end_time

    else:
        print("begin_time值需要传入str类型的参数")


begin_time="2021-03-01"
cycle=12
v=endday(begin_time,cycle)
print("合同开始日期%s,合同周期%s"%(begin_time,cycle))
print("合同结束日期%s"%v)

【运行结果】

合同开始日期2021-03-01,合同周期12
合同结束日期2022-02-28

  • 2
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Python中的datetime模块提供了一些方便的方法来进行日期和时间的加减操作。以下是一些常用的方法: 1. timedelta(days=x, hours=x, minutes=x, seconds=x):用于计算两个日期之间的时间差,可以指定天数、小时数、分钟数、数等。 2. date(year, month, day):用于创建一个日期对象。 3. time(hour, minute, second):用于创建一个时间对象。 4. datetime(year, month, day, hour, minute, second):用于创建一个日期时间对象。 5. strftime(format):用于将日期时间对象格式化为指定的字符串格式。 6. strptime(date_string, format):用于将字符串解析为日期时间对象。 例如,以下代码演示了如何进行日期加减操作: ```python import datetime # 创建一个日期对象 d = datetime.date(2021, 9, 1) # 加上10天 d += datetime.timedelta(days=10) # 减去2周 d -= datetime.timedelta(weeks=2) # 输出结果 print(d) ``` 输出结果为:2021-08-18。 ### 回答2: Python中的datetime模块提供了一些方法来加减日期。datetime模块中最常用的类有:date,time和datetime。在这些类中,date类表示日期,time类表示时间,datetime类表示日期和时间。 日期加减方法 1. timedelta timedelta是Python中用于日期加减的基本工具。timedelta表示两个日期之间的差距。我们可以使用timedelta在日期上加上或减去一定的时间。对于timedelta对象,我们可以使用以下方法来创建它: timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0) 这些参数表示在datetime对象中要增加或减去的时间部分,每个参数都是可选的。当我们增加或减去一个timedelta对象时,我们可以使用以下方法: date = date + timedelta(days=x) date = date - timedelta(days=x) datetime = datetime + timedelta(days=x) datetime = datetime - timedelta(days=x) 2. dateutil 另一个流行的Python日期库是dateutil。它是Python的一个第三方日期库,可以比Python标准库更方便地进行日期操作。它涵盖了很多常见的日期和时间操作,并提供了许多有用的函数来处理常见的日期操作。 例如,我们可以使用dateutil中的relativedelta函数来执行比Python标准库更复杂的日期加减操作。与timedelta类似,relativedelta也表示相对于一个日期的差异。 from dateutil.relativedelta import relativedelta date = date + relativedelta(months=+1) date = date - relativedelta(months=-1) 总之,Python中datetime模块提供了很多工具来操作日期。可以使用timedelta类来进行基本的日期加减,也可以使用dateutil库来进行更复杂的日期加减操作。无论是哪种方法,这些工具都使我们更轻松地管理日期,让我们更关注业务逻辑而不是日期细节。 ### 回答3: Python中的datetime库可以方便地实现日期和时间的加减运算。日期和时间的加减运算实际上是指在当前日期和时间上增加或减少一定的时间间隔。 datetime库中常用的类有:date、time和datetime。其中,date类表示日期,time类表示时间,datetime类表示日期和时间的结合体。通过这些类的组合运用,可以实现对日期和时间的灵活操作。 对于datetime库中日期和时间的加减运算,可以使用timedelta类。timedelta表示两个时间之差或者是可以指定的时间增量。可以把timedelta看作是datetime中的一段时间。timedelta对象可以用来表示天数、数、微数等类型的时间差。 下面是一些常用的操作: 1.日期加减 可以使用timedelta类来对日期进行加减操作。例如,将当前日期加上一天: import datetime today = datetime.date.today() oneday = datetime.timedelta(days=1) tomorrow = today + oneday print(tomorrow) 其中days参数表示天数,可以根据需要进行调整。 2.时间加减 可以使用timedelta类来对时间进行加减操作。例如,将当前时间加上一小时: import datetime now = datetime.datetime.now() onehour = datetime.timedelta(hours=1) future = now + onehour print(future) 其中hours参数表示小时数,可以根据需要进行调整。 3.日期和时间的加减 相对于日期和时间的加减,操作会相对复杂一些,需要注意类型的不同。例如,将当前日期时间加上一周: import datetime today = datetime.datetime.now() oneweek = datetime.timedelta(weeks=1) nextweek = today + oneweek print(nextweek) 其中weeks参数表示周数。 除了timedelta类,还有很多其他可以实现日期和时间操作的类和方法。在实际开发中,可以根据需要进行选择和调用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值