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.localtime
。tm_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_time
和 timestamp
的相互转化的函数。有时我们还需要将时间转化成格式化的字符串方便输出,库也提供了相应的函数,格式化指令参考文档。转化函数见下表。有时我们只想简单的输出一个字符串,不要求特定的格式,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.localtime
。tm_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_time
和 timestamp
的相互转化的函数。有时我们还需要将时间转化成格式化的字符串方便输出,库也提供了相应的函数,格式化指令参考文档。转化函数见下表。有时我们只想简单的输出一个字符串,不要求特定的格式,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() |