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
这是输出。
获取工作日
可以使用weekday
或format
方法找到日期的星期几。
#!/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教程。