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
| #!/usr/bin/python3
import arrow
utc = arrow.utcnow()
print(utc)
print(utc.to('local'))
|
使用utcnow()
功能创建 UTC 时间。
使用to()
方法,我们将 UTC 时间转换为本地时间。
当地时间
本地时间是特定区域或时区中的时间。
local_time.py
| #!/usr/bin/python3
import arrow
now = arrow.now()
print(now)
print(now.to('UTC'))
|
使用now()
功能创建本地时间。 to()
方法用于将本地时间转换为 UTC 时间。
解析时间
get()
方法用于解析时间。
parse_time.py
| #!/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)
|
该示例从日期和时间字符串以及时间戳解析时间。
| $ ./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 日期对象。
| 2017-09-02T21:57:11.483795+02:00
1504382231
2017-09-02T21:57:11+02:00
|
这是输出。
也可以将日期格式化为 Unix 时间。
format2unix.py
| #!/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()
方法以各种格式显示本地日期和时间。
| $ ./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
| #!/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 时间并将其转换为三个区域时间。
| $ ./converting.py
13:24:06
22:24:06
23:24:06
|
这是输出。
工作日
可以使用weekday()
或format()
方法找到日期的工作日。
weekday.py
| #!/usr/bin/python3
import arrow
d1 = arrow.get('1948-12-13')
print(d1.weekday())
print(d1.format('dddd'))
|
该代码示例的工作日为“ 1948-12-13”。
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())
|
在这里,我们将日期向后移八年。
| $ ./shifting.py
03:44:23.100887
2017-09-07
2009-09-02
|
这是输出。
夏令时
夏令时(DST)是在夏季的几个月中增加时钟的一种做法,因此晚上的夏时制持续时间更长。 在春季开始时将时间向前调整一小时,在秋季将时间向后调整为标准时间。
daylightsaving.py.py
| #!/usr/bin/python3
import arrow
now = arrow.now()
print(now.format("YYYY-MM-DD HH:mm:ss ZZ"))
print(now.dst())
|
该示例使用dst()
显示夏令时。
| $ ./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)
|
该示例将两个日期人性化。
| $ ./humanizing.py
15 minutes ago
in 4 hours
|
这是输出。
在本教程中,我们使用带有 Arrow 模块的 Python 中的日期和时间。