跳转至

Time

python的time,datetime,calandar模块都可以帮助我们处理时间。这里简单介绍一下time模块,他简单封装了POSIX API,但是做了一些修改。time模块的结构化时间表示类型为time.struct_time

  • 获得 timestamp: time.time(),类型就是float
  • 获得 struct_time,时区为GMT/UTC: time.gmtime()
  • 获得 struct_time,时区为本地时区: time.localtime()
  • 构造特定时间的struct_time: 可以但不建议这么干,建议使用datetime

例如,我在东八区调用time.localtimetm_gmtoff是以秒为单位的UTC以东偏离。

>>> time.localtime()
time.struct_time(tm_year=2024, tm_mon=3, tm_mday=25, tm_hour=22, tm_min=41, tm_sec=40, tm_wday=0, tm_yday=85, tm_isdst=0)
>>> time.localtime().tm_gmtoff / 3600
8.0

库提供struct_timetimestamp的相互转化的函数。有时我们还需要将时间转化成格式化的字符串方便输出,库也提供了相应的函数,格式化指令参考文档。转化函数见下表。有时我们只想简单的输出一个字符串,不要求特定的格式,time.ctime可以输出本地时间的标准字符串。

From To Function
timestamp Local struct_time localtime()
timestamp UTC struct_time gmtime()
struct_time timestamp mktime() (注意,他不会care时区,他会把 struct_time 当作UTC时间处理)
struct_time string strftime()
string struct_time strptime()

datetime模块提供了更高级和人性化的封装。他对结构化时间表示类型为datetime.datetime,时区信息使用timezone封装,时间差使用timedelta封装。

  • 获得 datetime,时区为GMT/UTC: datetime.utcnow()
  • 获得 datetime,时区为本地时区: datetime.now(None) (可以指定时区)
  • 构造特定时间的datetime: datetime.datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)
From To Function
timestamp Local datetime fromtimestamp()
timestamp UTC datetime utcfromtimestamp()
datetime timestamp timestamp()
struct_time string strftime()
string struct_time strptime()

时间

Python

python的time,datetime,calandar模块都可以帮助我们处理时间。这里简单介绍一下time模块,他简单封装了POSIX API,但是做了一些修改。time模块的结构化时间表示类型为time.struct_time

  • 获得 timestamp: time.time(),类型就是float
  • 获得 struct_time,时区为GMT/UTC: time.gmtime()
  • 获得 struct_time,时区为本地时区: time.localtime()
  • 构造特定时间的struct_time: 可以但不建议这么干,建议使用datetime

例如,我在东八区调用time.localtimetm_gmtoff是以秒为单位的UTC以东偏离。

>>> time.localtime()
time.struct_time(tm_year=2024, tm_mon=3, tm_mday=25, tm_hour=22, tm_min=41, tm_sec=40, tm_wday=0, tm_yday=85, tm_isdst=0)
>>> time.localtime().tm_gmtoff / 3600
8.0

库提供struct_timetimestamp的相互转化的函数。有时我们还需要将时间转化成格式化的字符串方便输出,库也提供了相应的函数,格式化指令参考文档。转化函数见下表。有时我们只想简单的输出一个字符串,不要求特定的格式,time.ctime可以输出本地时间的标准字符串。

From To Function
timestamp Local struct_time localtime()
timestamp UTC struct_time gmtime()
struct_time timestamp mktime() (注意,他不会care时区,他会把 struct_time 当作UTC时间处理)
struct_time string strftime()
string struct_time strptime()

datetime模块提供了更高级和人性化的封装。他对结构化时间表示类型为datetime.datetime,时区信息使用timezone封装,时间差使用timedelta封装。

  • 获得 datetime,时区为GMT/UTC: datetime.utcnow()
  • 获得 datetime,时区为本地时区: datetime.now(None) (可以指定时区)
  • 构造特定时间的datetime: datetime.datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)
From To Function
timestamp Local datetime fromtimestamp()
timestamp UTC datetime utcfromtimestamp()
datetime timestamp timestamp()
struct_time string strftime()
string struct_time strptime()