# 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))

格式说明:

a87f0467c3a04c5535b387d1b080b2a4.png

# 转换为区域时间

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)