markdown python arrow - 处理时间和日期

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了markdown python arrow - 处理时间和日期相关的知识,希望对你有一定的参考价值。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import arrow
import datetime


# date time utils
def getdaterange(startdate, enddate):
    dates = []
    startdate = datetime.date(*[int(i) for i in startdate.split('-')])
    enddate = datetime.date(*[int(i) for i in enddate.split('-')])
    dates.append(str(startdate))
    while startdate < enddate:
        startdate = startdate + datetime.timedelta(days=1)
        dates.append(str(startdate))
    return dates


def beforeday(n):
    """
    更改时间日期
    :param n:
    :return:
    """
    now = arrow.utcnow().to('local')
    return now.replace(days=n).format('YYYY-MM-DD')


def today():
    """
    获取当天日期
    :return:
    """
    return beforeday(0)


def yesterday():
    """
    获取昨天日期
    :return:
    """
    return beforeday(-1)


def tomorrow():
    """
    获取明天日期
    :return:
    """
    return beforeday(1)


def lastweeks(n=1):
    """
    获取前N周的日期
    :param n:
    :return:
    """
    return getdaterange(beforeday(-1 * n * 7), yesterday())


def lastdays(n=1):
    """
    获取前n天的日期
    :param n:
    :return:
    """
    return getdaterange(beforeday(-1 * n), yesterday())
## 安装Arrow
```
pip install arrow
```

## 使用Arrow
```
import arrow
```

### 获取当前时间
```
# 默认的now()便会以系统时区作为arrow对象的时区,同时是本地时间格式
now = arrow.now()

result: <Arrow [2017-10-14T15:54:40.511430+08:00]>
```

### 获得UTC时间
```
utc = arrow.utcnow()

result: <Arrow [2017-10-14T07:57:14.499582+00:00]>
```

### 时区转换
```
local = arrow.utcnow().to('local')
local = arrow.utcnow().to('Asia/Shanghai')

result: <Arrow [2017-10-14T15:59:20.391247+08:00]>
```

### 获取时间戳
```
timestamp = local.timestamp

result: 1507967960
```

### 将日期转换为arrow对象
```
arrow.get('2016-07-05 21:03:44', 'YYYY-MM-DD HH:mm:ss')

result: <Arrow [2016-07-05T21:03:44+00:00]>
```

### 将指定时间戳获取arrow对象
```
arrow.get(1507967960)
arrow.get('1507967960')

result: <Arrow [2017-10-14T07:59:20+00:00]>
```

### 其他获取arrow对象的方式
```
arrow.get(2017,10,14)
arrow.get(2017,10,14,20)
arrow.get(2017,10,14,20,30)
arrow.get(2017,10,14,20,30,59)

arrow.Arrow(2017,10,14)
```

### 调整日期
```
yesterday = local.replace(days=-1)

result: <Arrow [2017-10-13T15:59:20.391247+08:00]>
```
### 人性化humanize
```
local.humanize()
result: u'5 minutes ago'

local.humanize(locale=zh_CN')
result: u'5\u5206\u949f\u524d'
```

### 格式化
```
local.format()
result: u'2017-10-14 15:59:20+08:00'

local.format('YYYY-MM-DD HH:mm:ss')
result: u'2017-10-14 15:59:20'
```

## Reference
- http://arrow.readthedocs.io/en/latest/
- https://github.com/crsmithdev/arrow

以上是关于markdown python arrow - 处理时间和日期的主要内容,如果未能解决你的问题,请参考以下文章

arrow python处理日期时间

arrow:让Python的日期与时间变的更好

python使用matplotlib可视化线图(line plot)使用arrow函数在matplotlib可视化图像中添加箭头(drawing arrows in matplotlib)

Python 中的时间处理包datetime和arrow

python时间处理 time,datetime,arrow

Arrow-一个最好用的日期时间Python处理库