Python获取日期时间、格式化strftime和strptime、时间加减relativedelta

本文详细介绍了Python中使用datetime模块进行日期时间操作,包括today、now获取当前日期时间,strftime和strptime进行格式转换,relativedelta和timedelta实现时间加减。通过实例展示了如何方便地处理日期时间,对于开发工作极具参考价值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

获取日期时间,算是大家经常要用到的操作吧,这里归纳总结一下import datetime的情况下,常用的日期获取、格式化、时间加减的场景,即today、now、strftime、strptime、relativedelta、timedelta等操作

1、获取时间信息today、now

import datetime

today = datetime.date.today()
now = datetime.datetime.now()
# 获取当前日期(datetime)
print(today)
# 获取当前日期时间(datetime)
print(now)
# 单独获取年、月、日、时、分、秒、毫秒
print(now.year, now.month, now.day, now.hour, now.minute, now.second, now.microsecond)


# 输出结果:
# 2022-04-14
# 2022-04-14 15:32:49.186485
# 2022 4 14 15 32 49 186485

2、时间格式化(转字符型)strftime

import datetime

now = datetime.datetime.now()
# 格式化到秒(varchar)
print(now.strftime("%Y-%m-%d %H:%M:%S"))
# 格式化到日(varchar)
print(now.strftime("%Y-%m-%d"))

# 输出结果:
# 2022-04-14 15:32:49
# 2022-04-14

3、字符型转日期型strptime

import datetime

# 字符型日期转日期型(datetime)
print(datetime.datetime.strptime("2022-01-01 00:00:00", "%Y-%m-%d %H:%M:%S"))
print(datetime.datetime.strptime("2022/01/01 00:00:00", "%Y/%m/%d %H:%M:%S"))

# 输出结果:
# 2022-01-01 00:00:00
# 2022-01-01 00:00:00

4、逐个年月日转日期型datetime

​
import datetime

# 逐个数字转日期型(datetime)
print(datetime.datetime(2022, 2, 1))
print(datetime.date(2022, 2, 1))

# 输出结果:
# 2022-02-01 00:00:00
# 2022-02-01

5、时间加减relativedelta

import datetime

from dateutil.relativedelta import relativedelta

today = datetime.date.today()
# 时间加减years、months、days、hours、minutes
# 用到from dateutil.relativedelta import relativedelta
print(today + relativedelta(years=1))
print(today + relativedelta(months=-1))
print(today + relativedelta(days=1))
print(today + relativedelta(hours=-1))
print(today + relativedelta(minutes=1))

# 输出结果:
# 2023-04-14
# 2022-03-14
# 2022-04-15
# 2022-04-13 23:00:00
# 2022-04-14 00:01:00

6、时间加减timedelta

import datetime

now = datetime.datetime.now()
# 时间加减days、hours、minutes(timedelta无法进行年月加减)
print(now + datetime.timedelta(days=1))
print(now + datetime.timedelta(hours=-1))
print(now + datetime.timedelta(minutes=1))

# 输出结果:
# 2022-04-15 15:37:08.464653
# 2022-04-14 14:37:08.464653
# 2022-04-14 15:38:08.464653

import time的情况,个人用的不多,主要是用于休眠sleep;

或者因为拿到的是时间戳,只用在时间的计算上,比如

import time

# 获取当前时间戳(float)
now = time.time()
print(now)
# 输出结果:
# 1649923137.6823924

while True:
    if (time.time() - now) > 5:
        print(time.time())
        print('连接超时,断开程序')
        break
# 输出结果:
# 1649923142.6824458
# 连接超时,断开程序

# 休眠3s
time.sleep(3)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值