# Arrow
Arrow
- UTC 时间
- 当地时间
- 解析时间
- Unix 时间戳
- 格式化日期和时间
- 转换为区域时间
- 工作日
- 移动时间
- 夏令时
- 人性化的日期和时间
# Arrow
Arrow 提供了一个友好而且非常易懂的方法,用于创建时间、计算时间、格式化时间,还可以对时间做转化、提取、兼容 python datetime 类型。它包括dateutil模块,根据其文档描述Arrow旨在“帮助你使用更少的代码来处理日期和时间”。
# UTC 时间
使用utcnow()功能创建 UTC 时间。
使用to()方法,我们将 UTC 时间转换为本地时间。
import arrow
utc = arrow.utcnow()
print(utc)
print(utc.to('local'))
# 当地时间
本地时间是特定区域或时区中的时间。
import arrow
now = arrow.now()
print(now)
print(now.to('UTC'))
使用now()功能创建本地时间。to()方法用于将本地时间转换为 UTC 时间。
# 解析时间
get()方法用于解析时间。
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)
该示例从日期和时间字符串以及时间戳解析时间。
# Unix 时间戳
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 对象。
使用fromtimestamp()方法,我们将 Unix 时间转换回 Arrow 日期对象。
也可以将日期格式化为 Unix 时间。
import arrow
utc = arrow.utcnow()
print(utc.format('X'))
通过将’X’说明符传递给format()方法,我们将当前本地日期打印为 Unix 时间。
# 格式化日期和时间
日期和时间可以用format()方法格式化。
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))
格式说明:
# 转换为区域时间
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'))
# 工作日
可以使用weekday()或format()方法找到日期的工作日。
import arrow
d1 = arrow.get('1948-12-13')
print(d1.weekday())
print(d1.format('dddd'))
# 移动时间
shift()方法用于移动时间。
import arrow
now = arrow.now()
print(now.shift(hours=5).time())
print(now.shift(days=5).date())
print(now.shift(years=-8).date())
# 夏令时
import arrow
now = arrow.now()
print(now.format("YYYY-MM-DD HH:mm:ss ZZ"))
print(now.dst())
该示例使用dst()显示夏令时。
# 人性化的日期和时间
在社交网站上,我们经常可以看到诸如“一个小时前”或“ 5 分钟前”之类的术语,这些术语可以为人们提供有关帖子创建或修改时间的快速信息。Arrow 包含humanize()方法来创建此类术语。
import arrow
now = arrow.now()
d1 = now.shift(minutes=-15).humanize()
print(d1)
d2 = now.shift(hours=5).humanize()
print(d2)