目录
简介
Arrow 提供了一个友好而且非常易懂的方法,用于创建时间、计算时间、格式化时间,还可以对时间做转化、提取、兼容 python datetime 类型。
安装方法:
pip install arrow -U
导入方法:
import arrow
快速入门
以下是一些最常用的方法:
1 | import arrow |
看完你应该入门了。
时间的创建
arrow 创建时间,会生成一个 Arrow 对象
当前时间
以下创建一个当前时间:
1 | import arrow |
时间戳
根据整型或者浮点型时间戳创建时间:
1 | arrow.get(1599878923) |
字符串
支持ISO 8601规定的格式:
1 | # 带毫秒及时区,北京时间 |
按位传入时间值
1 | arrow.get(2020, 8, 1, 17) |
属性
Arrow 对象支持很多实用的属性:
1 | t = arrow.now() # 创建一个本地当前时间 |
格式化
格式化(Format)是指把时间转为人类易读的字符串形式。
1 | a = arrow.now() |
arrow 内置了一些格式:
1 | a.= arrow.utcnow() |
替换
可以对时间中的日期、小时等进行替换,以达到修改时间的目的,比如我们只要日期,可以将时分秒替换为 0。修改时区,也可以通过替换时间来实现。
1 | a = arrow.utcnow() |
需要注意的是,替换修改时间时,要保证最终的时间是一个合法的时间,如上例中的月份不能修改为 2 月。
移动
移动(Shift)是指可以将指定时间向前或者向后移动一定周期,如明天的此时,去年的今日。
1 | a.shift(weeks=+3) # 向未来三周 |
时区转换
除了上文 replace 方法转换外,还有专门的时区转换方法。以下从 utc 转到北京时间:
1 | utc = arrow.utcnow() |
时区的表示方法
公认的时区表达式:
- tzinfo 对象.
- str 时区描述符, similar to ‘US/Pacific’, or ‘Europe/Berlin’.
- str ISO 8601 风格, 如 ‘+07:00’.
- str, 特殊字符: ‘local’, ‘utc’, ‘UTC’.
人性化
人性化(Humanize)时间,是指将时间转化为人类易于主观识别的时间表达。以下是和当前时间对比:
1 | a = arrow.utcnow() |
也可以与另外一个指定的时间作对比:
1 | a.humanize(a.shift(days=1)) |
可以指定单位:
1 | # 单位为分钟 |
可以使用中文等其他语言:
1 | # 指定为中文 |
范围和跨度
可以定义一个时间区间:
1 | arrow.utcnow().span('hour') # 一个小时 |
Tokens
Token | Output | |
---|---|---|
Year | YYYY | 2000, 2001, 2002 … 2012, 2013 |
YY | 00, 01, 02 … 12, 13 | |
Month | MMMM | January, February, March … |
MMM | Jan, Feb, Mar … | |
MM | 01, 02, 03 … 11, 12 | |
M | 1, 2, 3 … 11, 12 | |
Day of Year | DDDD | 001, 002, 003 … 364, 365 |
DDD | 1, 2, 3 … 4, 5 | |
Day of Month | DD | 01, 02, 03 … 30, 31 |
D | 1, 2, 3 … 30, 31 | |
Day of Week | dddd | Monday, Tuesday, Wednesday … |
ddd | Mon, Tue, Wed … | |
d | 1, 2, 3 … 6, 7 | |
Hour | HH | 00, 01, 02 … 23, 24 |
H | 0, 1, 2 … 23, 24 | |
hh | 01, 02, 03 … 11, 12 | |
h | 1, 2, 3 … 11, 12 | |
AM / PM | A | AM, PM |
a | am, pm | |
Minute | mm | 00, 01, 02 … 58, 59 |
m | 0, 1, 2 … 58, 59 | |
Second | ss | 00, 01, 02 … 58, 59 |
s | 0, 1, 2 … 58, 59 | |
Sub-second | SSS | 000, 001, 002 … 998, 999 |
SS | 00, 01, 02 … 98, 99 | |
S | 0, 1, 2 … 8, 9 | |
Timezone | ZZ | -07:00, -06:00 … +06:00, +07:00 |
Z | -0700, -0600 … +0600, +0700 | |
Timestamp | X | 1381685817 |
参考
- https://arrow.readthedocs.io/en/stable/
- https://pypi.org/project/arrow/
- https://github.com/arrow\-py/arrow