arrow简介
arrow是一个提供了更易懂和友好的方法来创建、操作、格式化和转化日期、时间和时间戳的python库。可以完全替代datetime,支持python2和3。
用法
-
获取当前时间
# utc 时间 In [16]: arrow.utcnow() Out[16]: <Arrow [2020-04-29T12:16:38.437675+00:00]> # 本地时间 In [17]: arrow.now() Out[17]: <Arrow [2020-04-29T20:16:53.059585+08:00]> In [29]: arrow.now("Asia/Shanghai") Out[29]: <Arrow [2020-04-29T20:28:09.429144+08:00]> In [61]: local.ctime() Out[61]: 'Wed Apr 29 21:33:39 2020'
-
获取时间戳
In [18]: arrow.now().timestamp Out[18]: 1588162957 In [19]: arrow.utcnow().timestamp Out[19]: 1588162963
-
切换时区
In [55]: local = arrow.now().to("Asia/Shanghai") In [56]: local Out[56]: <Arrow [2020-04-29T21:32:07.196767+08:00]> In [57]: local.year Out[57]: 2020
-
时间戳转化为
Arrow
对象In [37]: arrow.get(1367900664) Out[37]: <Arrow [2013-05-07T04:24:24+00:00]> In [38]: arrow.get(1367900664.123456) Out[38]: <Arrow [2013-05-07T04:24:24.123456+00:00]>
-
格式化时间
In [20]: arrow.now().format() Out[20]: u'2020-04-29 20:23:56+08:00' In [21]: arrow.now().format("YYYY-MM-DD HH:mm") Out[21]: u'2020-04-29 20:24'
-
转化为
Arrow
对象In [40]: arrow.get("2020-04-29 20:23", "YYYY-MM-DD HH:mm") Out[40]: <Arrow [2020-04-29T20:23:00+00:00]> In [41]: arrow.get("2020-04-29 20:23") Out[41]: <Arrow [2020-04-29T20:23:00+00:00]> In [42]: arrow.get(2020,4,29) Out[42]: <Arrow [2020-04-29T00:00:00+00:00]> In [43]: arrow.get(2020,4,29,20,30) Out[43]: <Arrow [2020-04-29T20:30:00+00:00]>
-
时间推移
t = arrow.now() <Arrow [2017-02-01T17:19:19.933507+08:00]> t.shift(days=-1) # 前一天 <Arrow [2017-01-31T17:19:19.933507+08:00]> t.shift(weeks=-1) # 前一周 <Arrow [2017-01-25T17:19:19.933507+08:00]> t.shift(months=-2) # 前两个月 <Arrow [2016-12-01T17:19:19.933507+08:00]> t.shift(years=1) # 明年 <Arrow [2018-02-01T17:19:19.933507+08:00]>
-
时间替换
In [50]: a = arrow.now() In [51]: a Out[51]: <Arrow [2020-04-29T20:39:12.615185+08:00]> In [52]: a.replace(hour=4) Out[52]: <Arrow [2020-04-29T04:39:12.615185+08:00]>
-
对象的属性
>>> a = arrow.now() >>> a <Arrow [2016-07-04T20:17:09.633154+08:00]> >>> a.timestamp 1467634629 >>> a.year 2016 >>> a.month 7 >>> a.day 4 >>> a.hour 20 >>> a.minute 17 >>> a.second 9 >>> a.microsecond 633154 >>> a.week 27
Token
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 |