datetime模块

发布时间 2023-06-05 09:43:53作者: Chimengmeng

datetime模块

【一】导入模块

import datetime

【二】自定义日期

res = datetime.date(2019, 7, 15)
print(res)  # 2019-07-15

【三】获取本地时间

  • 年月日
now_date = datetime.date.today()
print(now_date) 
# 2023-06-02
  • 年月日时分秒
now_time = datetime.datetime.today()
print(now_time)
# 2023-06-02 19:16:56.447458
  • 无论是年月日,还是年月日时分秒对象

  • 都可以调用以下方法获取针对性的数据

    • 以datetime对象举例
    now_time = datetime.datetime.today()
    print(now_time.year)  
    # 获取年份2023
    print(now_time.month)  
    # 获取月份6
    print(now_time.day)  
    # 获取日2
    print(now_time.weekday())  
    # 4 获取星期(weekday星期是0-6) 0表示周一
    print(now_time.isoweekday())  
    # 5 获取星期(weekday星期是1-7) 1表示周一
    

【四】timedelta对象

【1】可以对时间进行运算操作

import datetime
(1)获得本地日期 年月日
tday = datetime.date.today()
print(tday)
# 2023-06-02
(2)定义操作时间
  • day=7
    • 也就是可以对另一个时间对象加7天或者减少7点
tdelta = datetime.timedelta(days=7)
print(tdelta)
# 7 days, 0:00:00

【2】打印今天的日期

tday = datetime.date.today()
print('今天的日期:{}'.format(tday))  
# 今天的日期:2023-06-02

【3】打印七天后的日期

tdelta = datetime.timedelta(days=7)
tday = datetime.date.today()
print('从今天向后推7天:{}'.format(tday + tdelta))  
# 从今天向后推7天:2023-06-09

【4】总结:日期对象与timedelta之间的关系

  • 日期对象 = 日期对象 +/- timedelta对象
  • timedelta对象 = 日期对象 +/- 日期对象
(1)定义日期对象/定义timedelta对象
now_date1 = datetime.date.today()
lta = datetime.timedelta(days=6)
(2)验证
now_date2 = now_date1 + lta  # 日期对象 = 日期对象 +/- timedelta对象
print(type(now_date2))  # <class 'datetime.date'>
lta2 = now_date1 - now_date2  # timedelta对象 = 日期对象 +/- 日期对象
print(type(lta2))  # <class 'datetime.timedelta'>

【五】练习

【1】计算举例今年过生日还有多少天

import datetime

birthday = datetime.date(2019, 12, 21)
now_date = datetime.date.today()
tday = datetime.date.today()
days = birthday - now_date
print('生日:{}'.format(birthday))
print('今天的日期:{}'.format(tday))
print('距离生日还有{}天'.format(days))

# 生日:2019-12-21
# 今天的日期:2023-06-02
# 距离生日还有-1259 days, 0:00:00天

【六】总结年月日时分秒及时区问题

import datetime

dt_today = datetime.datetime.today()
dt_now = datetime.datetime.now()
dt_utcnow = datetime.datetime.utcnow()  # UTC时间与我们的北京时间cha ju

print(dt_today)
# 2023-06-02 19:37:46.933068
print(dt_now)
# 2023-06-02 19:37:46.933068
print(dt_utcnow)
# 2023-06-02 11:37:46.933068