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处理库