---
url: /python/arrow.md
description: Arrow是一个Python库，它提供了简单易用的日期和时间操作方法，可以替代Python内置的datetime模块。
---

# 一个神奇的Python库——Arrow

开发者经常会遇到以下几个问题：

* 需要将时间转化为特定格式的字符串

* 需要转换时间的时区

* 需要对时间进行加减

等等，总之我们需要对日期、时间做处理。

通常我们会使用`time`或`datetime`包来实现，本文将为大家介绍一个更好用的时间处理包——Arrow。

## 安装

```sh
pip install arrow
```

## 快速开始

```py
import arrow
```

1. 将时间字符串转换为日期对象

```python
arrow.get('2024-12-16T21:23:58.970460+08:00')
```

![](/img/99042666-0a99-4d45-8909-7ff1e346f6f7.png)

2. 获取当前UTC时间

```python
utc = arrow.utcnow()
utc
```

![](/img/a49b3cac-d7ae-4e7f-9008-6f9fb801f2c7.png)

在案例1中，末尾有`+08:00`，代表东八区，也就是我们通常使用的时间。而案例2中，末尾是`+00:00`，代表0时区，也就是UTC时间。

3. 时间的加减

加一个小时

```python
utc.shift(hours=+1)
```

![](/img/cf6bdb0e-e557-4534-9ec7-a658e619eb74.png)

减一天

```python
utc.shift(days=-1)
```

![](/img/7caa4e4b-2276-45f9-a2b0-754e4015b531.png)

对时间的加减是不是非常的直观，是不是很方便呢。

arrow支持的类型有：`years`, `months`, `days`, `hours`, `minutes`, `seconds`, `microseconds`, `weeks`, `quarters`, `weekday`。

4. 转换时区

```python
utc.to('Asia/Shanghai')
```

![](/img/4dc0ec0d-1ec3-436e-a988-51d89613811b.png)

5. 转换为时间戳

```python
utc.timestamp()
```

![](/img/8ebaa173-ff0f-4273-afb6-1ebd21714cfb.png)

6. 转换为指定格式字符串

```python
utc.format('YYYY-MM-DD HH:mm:ss')
```

![](/img/04175b5e-3836-4005-8546-d4ace782c6cd.png)

7. 转换为人性化可读性时间

```python
utc.humanize()
```

![](/img/c2b00435-7612-4821-aec3-2863c08762c9.png)

不知道体验了上述案例以后你有没有喜欢上arrow。至少我是已经离不开arrow了，真是太方便了。

## 进阶

学习Python，所谓的开发经验也代表你积累了足够多的好用的包或者工具。它们都将更好地帮助你解决问题或者提高开发效率。对于开发者，一定要注意日常积累，说不定就可以解决你的问题。如果你也想要尝试Arrow，可以关注公众号：遇码，回复**arrow**获取官方文档。
