开放的编程资料库

当前位置:我爱分享网 > Python教程 > 正文

Python 使用 arrow

Python箭头教程展示了如何在Python中使用箭头模块处理日期和时间。

Python箭头

Arrow是一个用于处理日期和时间的Python模块。与内置的日期和时间工具相比,它可以更轻松地创建、操作、格式化和转换日期、时间和时间戳。

安装箭头

箭头模块使用以下命令安装:

$ sudo pip3 install arrow

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

UTC时间

有一个全球时间的实用需求。一个全球时间有助于避免时区和夏令时的混淆。UTC(全球协调时间)是主要时间标准。UTC用于航空、天气预报、飞行计划、空中交通管制许可和地图。与本地时间不同,UTC不随季节变化而变化。

#!/usr/bin/python

import arrow

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

UTC时间是使用utcnow函数创建的。

print(utc.to('local'))

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

当地时间

当地时间是特定地区或时区的时间。

#!/usr/bin/python

import arrow

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

本地时间是使用now函数创建的。to方法用于将本地时间转换为UTC时间。

解析时间

get方法用于解析时间。

#!/usr/bin/python

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秒以来的秒数值。

#!/usr/bin/python

import arrow

utc = arrow.utcnow()
print(utc)

unix_time = utc.timestamp
print(unix_time)

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

该示例打印本地时间和Unix时间。然后它将Unixtime转换回日期对象。

date = arrow.Arrow.fromtimestamp(unix_time)

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

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

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

#!/usr/bin/python

import arrow

utc = arrow.utcnow()
    
print(utc.format('X'))

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

$ ./format2unix.py 
1504383196

格式化日期和时间

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

#!/usr/bin/python

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方法,我们可以将日期和时间转换为区域时间。

#!/usr/bin/python

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

这是输出。

获取工作日

可以使用weekdayformat方法找到日期的星期几。

#!/usr/bin/python

import arrow

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

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

代码示例获取“1948-12-13”的工作日。

$ ./weekday.py 
0
Monday

1948年12月12日,星期一。

换档时间

shift方法用于时间偏移。

#!/usr/bin/python

import arrow

now = arrow.now()

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

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

该示例计算当前本地时间并将其移动3次。

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)是指在夏季月份提前时钟以使傍晚的日光持续时间更长的做法。时间在春季向前调整一小时,在秋季向后调整为标准时间。

#!/usr/bin/python

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分钟前”之类的术语,它们为人们提供了有关帖子创建或修改时间的快速信息。箭头包含一个humanize方法来创建这样的术语。

#!/usr/bin/python

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

在本教程中,我们使用箭头模块在Python中处理日期和时间。

列出所有Python教程。

未经允许不得转载:我爱分享网 » Python 使用 arrow

感觉很棒!可以赞赏支持我哟~

赞(0) 打赏