文章目录

  • 简介
  • Python表示时间的几种方式
  • time
  • datetime


简介

Python中提供了对日期和实践的丰富多样的处理方式,其中主要有time与datetime这两个模块。本文将为各位介绍这两个模块在使用上的区别与联系。

Python表示时间的几种方式

时间戳:相对于1970.1.1 00:00:00以秒计算的偏移量,时间戳是唯一的。
时间元组:也就是struct_time,其中有九个元素,其中的含义如下表所示,同一个时间戳的struct_time会因为时区不同而变化。

元素

含义

tm_year

年,四位数字,例如:2022

tm_mon

月,范围1-12

tm_mday

日,范围1-31

tm_hour

时,范围0-23

tm_min

分,范围0-59

tm_sec

秒。范围0-59

tm_wday

周,范围0-6,其中0表示周日

tm_yday

表示一年中的第几天,范围1-366

tm_isdst

表示是否为夏令时,默认为-1

time

在 Python 文档里,time是归类在Generic Operating System Services中,这也就意味着, 它提供的功能是更加接近于操作系统层面的。同各国阅读稳当我们可以知道,time 模块是围绕着 Unix Timestamp 进行的。
该模块主要包括一个类 struct_time,以及另外其他几个函数和相关常量。不过值得注意的是,该模块中大多数函数是调用了所在平台C library的同名函数, 所以要特别注意有些函数是平台相关的(如:time.clock()),可能会在不同的平台有不同的效果。还有值得留意的是,它能够表述的日期范围被限定在了1970-2038之间,如果需要处理在这范围外的日期,那么使用datetime模块会更好一些。

datetime

datetime乍一看功能比time丰富了不少,事实也确实如此,datetime基于time进行了封装,提供了更多实用的函数,在datetime模块中包含了几个类,具体如下:

类名

作用

timedelta

主要用于计算时间跨度

tzinfo

时区相关

time

只关注时间

date

只关注日期

datetime

同时关注时间日期

在实际实用中,用得比较多的是 datetime.datetime 和 datetime.timedelta ,另外两个 datetime.date 和 datetime.time 实际使用和 datetime.datetime 并无太大差别。