python时间处理(二)Datetime

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/DataCastle/article/details/84300825

上一篇内容了解了time模块,接下来看下Datetime模块,这里主要想解决的问题是如何计算两个时间的差,并且返回秒,分钟,小时,所以内容主要更偏向于解决问题,如果大家没有看到自己需要的,最后会放上官方文档供大家参考。

首先看一下它具有的类及描述:

类名 描述
datetime.date 日期对象,属性:yearmonth,和 day
datetime.time 时间对象,属性:hourminutesecondmicrosecond 和 tzinfo
datetime.datetime 日期和时间的组合对象,属性:yearmonthdayhourminutesecondmicrosecond 和 tzinfo
datetime.timedelta 两个日期或时间之间的差。
datetime.tzinfo 表示 UTC 时区的固定偏移,是 tzinfo 基类的实现
datetime.timezone 将 tzinfo 抽象基类实现为与UTC的固定偏移量的类。

这里需要注意的是datetime默认的两个常量分别是MINYEAR和MAXYEAR,即最小年与最大年分别是1和9999

datetime.MINYEAR
#1

datetime.MAXYEAR
#9999

为大家科普一下常用的方法:)

  • datetime.date.today():返回当前时间,只会返回年月日。
  • datetime.date.fromtimestamp(timestamp):返回时间戳所对应的时间,只会返回年月日。
  • datetime.datetime.now():返回当前时间,返回值为年月日,小时,分钟,秒,毫秒。
  • datetime.datetime.strptime('2018-11-20 15:51:24.482422',"%Y-%m-%d %H:%M:%S.%f"):按字符串的格式返回datetime.datetime数据。
  • datetime.datetime.fromtimestamp(1542696019.5583735):返回时间戳所对应的时间,包含年月日,小时,分钟,秒,微秒。
  • datetime.datetime.timestamp(datetime.datetime()):返回时间戳,输入的是datetime.datetime类型数据。
datetime.date.today()
#datetime.date(2018, 11, 20)

datetime.date.fromtimestamp(1542696019.5583735)
#datetime.date(2018, 11, 20)

datetime.datetime.now()
#datetime.datetime(2018, 11, 20, 16, 4, 41, 186189)

datetime.datetime.strptime('2018-11-20 15:51:24.482422',"%Y-%m-%d %H:%M:%S.%f")
#datetime.datetime(2018, 11, 20, 15, 51, 24, 482422)

datetime.datetime.fromtimestamp(1542696019.5583735)
#datetime.datetime(2018, 11, 20, 14, 40, 19, 558373)

datetime.datetime.timestamp(datetime.datetime(2018, 11, 20, 14, 40, 19, 558373))
#1542696019.558373

 这里提示大家一下,datetime.date.today()datetime.datetime.now()返回的值是datetime.datetime格式,可以直接用str(datetime.datetime.now())的方法将数据转换为字符串,方便进行存储。例如str(a),返回的结果是个字符串。

接下来进入正题:

首先创建两个时间:

a = datetime.datetime.now()
b = datetime.datetime.now()
#注意这两个时间是在不同时间创建的,所以值不相同。

将这两个时间相减可得:

c = b-a
c
#datetime.timedelta(0, 283, 433989)
#上面是两个时间相减产生的结果,返回的参数分别为天,秒,微秒

type(c)
#datetime.timedelta

依次调用 datetime.timedelta 的属性:

c.days
#0
#天数

c.seconds
#283
#秒数

c.total_seconds()
#283.433989
#秒数加微秒的值

 结果就如上所示了,其实关键点就是要先将时间转换成 datetime.datetime 形式,然后就可以直接做运算。

官方文档如下:datetime

猜你喜欢

转载自blog.csdn.net/DataCastle/article/details/84300825