跳转至

Python Arrow 教程

Python Arrow 教程 显示了如何在带有Arrow模块的 Python 中使用日期和时间。

Python Arrow

Arrow 是用于处理日期和时间的 Python 模块。 与内置的日期和时间工具相比,它使创建,操作,格式化和转换日期,时间和时间戳变得更加容易。

安装 Arrow

Arrow 模块使用以下命令安装:

$ sudo pip3 install arrow

我们使用pip3命令安装arrow模块。

UTC 时间

实际需要一个全球时间。 全球时间可以避免时区和夏令时的混淆。 UTC(世界标准时间)是主要时间标准。 UTC 用于航空,天气预报,飞行计划,空中交通管制通关和映射。 与当地时间不同,UTC 不会随季节变化而变化。

utc_time.py
1
2
3
4
5
6
7
#!/usr/bin/python3

import arrow

utc = arrow.utcnow()
print(utc)
print(utc.to('local'))

使用utcnow()功能创建 UTC 时间。

print(utc.to('local'))

使用to()方法,我们将 UTC 时间转换为本地时间。

当地时间

本地时间是特定区域或时区中的时间。

local_time.py
1
2
3
4
5
6
7
#!/usr/bin/python3

import arrow

now = arrow.now()
print(now)
print(now.to('UTC'))

使用now()功能创建本地时间。 to()方法用于将本地时间转换为 UTC 时间。

解析时间

get()方法用于解析时间。

parse_time.py
1
2
3
4
5
6
7
8
9
#!/usr/bin/python3

import arrow

d1 = arrow.get('2012-06-05 16:20:03', 'YYYY-MM-DD HH:mm:ss')
print(d1)

d2 = arrow.get(1504384602)
print(d2)

该示例从日期和时间字符串以及时间戳解析时间。

1
2
3
$ ./parse_time.py 
2012-06-05T16:20:03+00:00
2017-09-02T20:36:42+00:00

这是输出。

Unix 时间

Unix 时间是自 Unix 时代以来的秒数。 timestamp属性返回自 1970 年 1 月 1 日协调世界时以来 0 小时 0 分 0 秒以来以秒为单位的时间值。

unix_time.py
#!/usr/bin/python3

import arrow

utc = arrow.utcnow()
print(utc)

unix_time = utc.timestamp
print(unix_time)

date = arrow.Arrow.fromtimestamp(unix_time)
print(date)

该示例显示本地时间和 Unix 时间。 然后,它将 Unix 时间转换回 date 对象。

date = arrow.Arrow.fromtimestamp(unix_time)

使用fromtimestamp()方法,我们将 Unix 时间转换回 Arrow 日期对象。

1
2
3
2017-09-02T21:57:11.483795+02:00
1504382231
2017-09-02T21:57:11+02:00

这是输出。

也可以将日期格式化为 Unix 时间。

format2unix.py
1
2
3
4
5
6
7
#!/usr/bin/python3

import arrow

utc = arrow.utcnow()

print(utc.format('X'))

通过将'X'说明符传递给format()方法,我们将当前本地日期打印为 Unix 时间。

$ ./format2unix.py 
1504383196

这是输出。

格式化日期和时间

日期和时间可以用format()方法格式化。

formatting.py
#!/usr/bin/python3

import arrow

now = arrow.now()

year = now.format('YYYY')
print("Year: {0}".format(year))

date = now.format('YYYY-MM-DD')
print("Date: {0}".format(date))

date_time = now.format('YYYY-MM-DD HH:mm:ss')
print("Date and time: {0}".format(date_time))

date_time_zone = now.format('YYYY-MM-DD HH:mm:ss ZZ')
print("Date and time and zone: {0}".format(date_time_zone))

该示例使用format()方法以各种格式显示本地日期和时间。

1
2
3
4
5
$ ./formatting.py 
Year: 2017
Date: 2017-09-02
Date and time: 2017-09-02 22:00:32
Date and time and zone: 2017-09-02 22:00:32 +02:00

这是输出。

转换为区域时间

使用to()方法,我们可以将日期和时间转换为区域时间。

converting.py
1
2
3
4
5
6
7
8
9
#!/usr/bin/python3

import arrow

utc = arrow.utcnow()

print(utc.to('US/Pacific').format('HH:mm:ss'))
print(utc.to('Europe/Bratislava').format('HH:mm:ss'))
print(utc.to('Europe/Moscow').format('HH:mm:ss'))

该示例创建一个 UTC 时间并将其转换为三个区域时间。

1
2
3
4
$ ./converting.py 
13:24:06
22:24:06
23:24:06

这是输出。

工作日

可以使用weekday()format()方法找到日期的工作日。

weekday.py
1
2
3
4
5
6
7
8
#!/usr/bin/python3

import arrow

d1 = arrow.get('1948-12-13')

print(d1.weekday())
print(d1.format('dddd'))

该代码示例的工作日为“ 1948-12-13”。

1
2
3
$ ./weekday.py 
0
Monday

1948 年 12 月 12 日,是星期一。

移动时间

shift()方法用于移动时间。

shifting.py
#!/usr/bin/python3

import arrow

now = arrow.now()

print(now.shift(hours=5).time())
print(now.shift(days=5).date())

print(now.shift(years=-8).date())

该示例计算当前本地时间并将其偏移三倍。

print(now.shift(hours=5).time())

我们将时间提前了五个小时。

print(now.shift(days=5).date())

我们将日期提前五天。

print(now.shift(years=-8).date())

在这里,我们将日期向后移八年。

1
2
3
4
$ ./shifting.py 
03:44:23.100887
2017-09-07
2009-09-02

这是输出。

夏令时

夏令时(DST)是在夏季的几个月中增加时钟的一种做法,因此晚上的夏时制持续时间更长。 在春季开始时将时间向前调整一小时,在秋季将时间向后调整为标准时间。

daylightsaving.py.py
1
2
3
4
5
6
7
8
#!/usr/bin/python3

import arrow

now = arrow.now()

print(now.format("YYYY-MM-DD HH:mm:ss ZZ"))
print(now.dst())

该示例使用dst()显示夏令时。

1
2
3
$ ./daylightsaving.py 
2017-09-02 22:46:37 +02:00
1:00:00

输出显示本地时间已调整一小时。

人性化的日期和时间

在社交网站上,我们经常可以看到诸如“一个小时前”或“ 5 分钟前”之类的术语,这些术语可以为人们提供有关帖子创建或修改时间的快速信息。 Arrow 包含humanize()方法来创建此类术语。

humanize.py
#!/usr/bin/python3

import arrow

now = arrow.now()

d1 = now.shift(minutes=-15).humanize()
print(d1)

d2 = now.shift(hours=5).humanize()
print(d2)

该示例将两个日期人性化。

1
2
3
$ ./humanizing.py 
15 minutes ago
in 4 hours

这是输出。

在本教程中,我们使用带有 Arrow 模块的 Python 中的日期和时间。