关于日期的一些操作:基于datetime模块

time模块可以很好地获取时间戳(time.time()),并进行格式化处理。但是,如果想要以更方便的格式显示日期,或者对日期进行加减运算(如获取167天前是什么日期,89天后是什么日期),time模块就无能为力了。这个时候就需要用到datetime模块。
datetime模块也有自己的datetime数据类型,其值表示一个特定的时刻。如

import datetime # 导入模块
datetime.datetime.now() # 获取当前时间
t0 = datetime.datetime(2020,1,1,13,45,34)
t0.year,t0.month,t0.day,t0.hour,t0.minute,t0.second # 年,月,日,时,分,秒

image.png

日期间加减运算

datetime模块中提供了time.delta数据类型,该类型表示一段时间,而非一个具体的时刻,使用可以用于时间段之间的加减。如

delta = datetime.timedelta(days = 89,hours = 10,minutes = 3,seconds = 47)
# 这里delta表示89天,10小时,3分钟,47秒的一段时间
dt = datetime.datetime.now() + delta
dt

image.png

现在来回答我们开头提出的两个问题。

  1. 167天前是什么日期
dt = datetime.datetime.now() + datetime.timedelta(days = -167)
dt

image.png

  1. 89天后是什么日期
dt = datetime.datetime.now() + datetime.timedelta(days = 89)
dt

image.png

格式化日期

将datetime类型转换为字符串

方法:使用strftime函数

dt = datetime.datetime(2020,2,14,15,3,27)
res = dt.strftime('%Y-%m-%d %H:%M:%S')
# 或者 res = datetime.datetime.strftime(dt,'%Y-%m-%d %H:%M:%S')
print(type(res),res)

image.png

将字符串转换为datetime类型

方法:使用strptime函数

dtstr = '2020-02-14 15:03:27'
res = datetime.datetime.strptime(dtstr,'%Y-%m-%d %H:%M:%S')
print(type(res),res)

image.png

日期格式化符号

%y两位数的年份表示(00-99)
%Y四位数的年份表示(000-9999)
%m月份(01-12)
%d月内中的一天(0-31)
%H24小时制小时数(0-23)
%I12小时制小时数(01-12)
%M分钟数(00-59)
%S秒(00-59)
%a本地简化星期名称
%A本地完整星期名称
%b本地简化的月份名称
%B本地完整的月份名称
%c本地相应的日期表示和时间表示
%j年内的一天(001-366)
%p本地A.M.或P.M.的等价符
%U一年中的星期数(00-53)星期天为星期的开始
%w星期(0-6),星期天为星期的开始
%W一年中的星期数(00-53)星期一为星期的开始
%x本地相应的日期表示
%X本地相应的时间表示
%Z当前时区的名称
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值