Python arrow 更好的日期时间模块

目录
  • arrow模块的使用
    • 获取arrow对象
    • 时间形式转换
    • 获取数据
    • 修改时间
  • 总结

Python中有很多时间和日期处理的库,有time、datetime等,虽然提供了很完整的对日期、时间以及时区转换处理的功能,但是方法过多,不易于记忆,而且经常需要各种转换操作,非常繁琐,比如时间和时间戳的转换,格式化时间字符串转换等等,几乎每次使用都要先看一下教程文档。那么有没有使用起来更人性化的日期时间处理库呢?接下来就来看一下arrow日期时间库。

arrow是一个专门处理时间和日期的轻量级Python库,它提供了一种合理、人性化的方式来创建、操作、格式化、转换日期、时间和时间戳,可以比较轻易的创建具有时区意识的日期和时间实例。

可以使用pip install arrow进行安装。

arrow模块的使用

获取arrow对象

Arrow可以很灵活的将多种格式的时间数据转换成Arrow对象,如下:

import arrow
print(repr(arrow.Arrow(2021, 8, 23, 8)))
print(repr(arrow.get(2021, 8, 23, 8, 40)))
print(repr(arrow.get('2021-08-23 09:00')))
print(repr(arrow.get('2021.08.23')))
print(repr(arrow.get('23/2012/08', 'DD/YYYY/MM')))

执行结果如下:

上面几种方式都可以将字符数据转换为arrow对象,转换非常灵活。 除此之外,还可以把时间戳转换为arrow对象。

print(repr(arrow.get(1629683393.6558669)))

获取当前时间

utc_time = arrow.utcnow()
local_time = arrow.now()
print(utc_time)
print(local_time)

通过utcnow()函数和now()函数分别获取的是utc时间和本地时间,当然我们也可以在调用now()时指定时区,从而获取指定时区的时间,例如arrow.now('US/Pacific')。

时间形式转换

使用日期时间的时候我们经常需要转换操作,比如转换成指定格式的时间字符串,转换成时间戳等。

转换成时间字符串

now = arrow.now()
print(now)
print(now.format())
print(now.format("YYYY-MM-DD hh:mm:ss"))
print(now.format("YYYY-MM-DD"))

执行结果如下:

看到这个,是不是感觉比datetime模块的'%Y-%M-%D %h:%m:%s'格式化方式更人性化更便于记忆呢。

转换成时间戳

可以使用t.timestamp将arrow对象转换成时间戳。

now.timestamp

获取数据

转换为Arrow对象后,我们可以很方便的获取我们想要的各种时间数据,通过year、month、day、hour、minute、second、week等属性,如:

now = arrow.now()
print(now.year)
print(now.month)
print(now.day)
print(now.hour)
print(now.minute)
print(now.second)
print(now.week)

修改时间

有时拿到一个时间时,我们需要对时间就行修改,例如修改时区、修改时间等等,我们可以使用以下方式去修改。

now = arrow.now()
print(now.format("YYYY-MM-DD hh:mm:ss"))  # 2021-08-23 10:11:04
now_utc = now.to("utc")
print(now_utc.format("YYYY-MM-DD hh:mm:ss"))  # 2021-08-23 02:11:04
now1 = now.replace(day=31, hour=12)
print(now1.format("YYYY-MM-DD hh:mm:ss"))  # 2021-08-31 12:11:04
now2 = now.shift(months=-2)
print(now2.format("YYYY-MM-DD hh:mm:ss"))  # 2021-06-23 10:11:04 

我们可以使用to()方法切换时区,使用replace()方法修改时间,使用shift()进行时间的前后推移。

同Python内置日期datetime库一样,arrow对象也支持时间的大小对比,还有计算时间差操作,除此之外,还有很多意想不到的操作,感兴趣的话,可以查看官方文档:Arrow: Better dates & times for Python — Arrow 1.1.1 documentation)

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

(0)

相关推荐

  • Python日期时间模块arrow的具体使用

    目录 arrow模块的使用 获取arrow对象 获取当前时间 时间形式转换 转换成时间字符串 转换成时间戳 获取数据 修改时间 将字符串转换为arrow对象    arrow.get(string[,format_string]) 获取datetime对象的值 时间推移    a.shift(**kwargs) 时间替换   a.replace(**kwargs) 格式化输出    a.format([format_string]) 最牛的是这个人性化输出    a.humanize() Pyt

  • Python使用arrow库优雅地处理时间数据详解

    前言 大家应该都知道在很多时候我们不得不和时间打交道,但在Python标准库中处理时间的模块其实设计的不是很友好,为什么我会这么说?因为我相信大部分人几乎每次在处理时间数据时一而再,再而三的去查文档,比如时间和文本格式互转,时间增减等看起来非常基本的操作,在Python中处理起来并不简单. 最要命的是,在Python标准库中居然有两个模块处理时间,一个叫time,另外一个叫datetime,里面提供了类似的方法但是两个完全不是一回事.到这还没完,标准库里还有一个叫calendar的模块,也是用来

  • Python 处理日期时间的Arrow库使用

    Python针对日期时间的处理提供了大量的package,类和方法,但在可用性上来看非常繁琐和麻烦 第三方库Arrow提供了一个合理的.人性化的方法来创建.操作.格式转换的日期,时间,和时间戳,帮助我们使用较少的导入和更少的代码来处理日期和时间. $ pip install arrow 获取当前时间    arrow.utcnow(), arrow.now() >>> arrow.utcnow() <Arrow [2018-02-24T13:15:29.981135+00:00]&

  • 关于Python 中的时间处理包datetime和arrow的方法详解

    在获取贝壳分的时候用到了时间处理函数,想要获取上个月时间包括年.月.日等 # 方法一: today = datetime.date.today() # 1. 获取「今天」 first = today.replace(day=1) # 2. 获取当前月的第一天 last_month = first - datetime.timedelta(days=1) # 3. 减一天,得到上个月的最后一天 print(last_month.strftime("%Y%m")) # 4. 格式化成指定形

  • Python arrow 更好的日期时间模块

    目录 arrow模块的使用 获取arrow对象 时间形式转换 获取数据 修改时间 总结 Python中有很多时间和日期处理的库,有time.datetime等,虽然提供了很完整的对日期.时间以及时区转换处理的功能,但是方法过多,不易于记忆,而且经常需要各种转换操作,非常繁琐,比如时间和时间戳的转换,格式化时间字符串转换等等,几乎每次使用都要先看一下教程文档.那么有没有使用起来更人性化的日期时间处理库呢?接下来就来看一下arrow日期时间库. arrow是一个专门处理时间和日期的轻量级Python

  • Python日期时间模块datetime详解与Python 日期时间的比较,计算实例代码

    python中的datetime模块提供了操作日期和时间功能,该模块提供了五种核心对象:datetime时间日期类型,date日期类型,time时间类型,tzinfo时区类型,timedelta时间差类型,今天为大家介绍一下datetime模块的具体使用方法与python日期时间计算与比较的相关实例 一.Python中日期时间模块datetime介绍 (一).datetime模块中包含如下类: 类名 功能说明 date 日期对象,常用的属性有year, month, day time 时间对象

  • Python日期时间Time模块实例详解

    本文实例讲述了Python日期时间Time模块.分享给大家供大家参考,具体如下: 关于时间和日期模块 python程序能用很多方式处理日期和时间,转换日期格式是一种常见的功能. python提供了一个time和calendar模块可以用于格式化日期和时间. 时间间隔是以秒为单位的浮点小数 每个时间戳都以自从1970年1月1日午夜(历元)经过了多长时间来表示. python的time模块下有很多函数可以转换常见的日期格式. Time模块 1.1 名词解释 UTC :格林威治天文时间,世界标准时间,

  • 详解python时间模块中的datetime模块

    Python提供了多个内置模块用于操作日期时间,像calendar,time,datetime.time模块我在之前的文章已经有所介绍,它提供的接口与C标准库time.h基本一致.相比于time模块,datetime模块的接口则更直观.更容易调用. 1.datetime中包含三个类date ,time,datetime 函数datetime.combine(date,time)可以得到dateime,datetime.date().datetime.time()可以获得date和time 2.d

  • 表格梳理解析python内置时间模块看完就懂

    目录 无参数函数 时区概念 struct_time time.strftime(format[, t]) 无参数函数 先解释一下时间戳,所谓时间戳,即自1970年1月1日00:00:00所经历的秒数,然后就可以理解下面的函数了.下面代码默认 from time import * implementation monotonic adjustable resolution 'time' GetSystemTimeAsFileTime() False True 0.015625 'thread_ti

  • Python中的日期时间处理详解

    Python中关于时间.日期的处理库有三个:time.datetime和Calendar,其中datetime又有datetime.date.datetime.time.datetime.datetime三个类.而时间又可以分为时间戳.本地时间和UTC时间(世界标准时间).是不是听起来有点乱?那么他们相互之间有什么区别?有什么联系?又如何转换呢? time模块 在time模块中,时间有三种表现形式: 时间戳,一般指Unix时间戳,是从1970年开始到现在的秒数. 本地时间的struct_time

  • Python时间模块datetime、time、calendar的使用方法

    本文简单总结了一下Python处理时间和日期方面的模块,主要就是datetime.time.calendar三个模块的使用,希望这篇文章对于学习Python的朋友们有所帮助. 首先就是模块的调用,很多IDE都已经安装好了很多Python经常使用到的模块,所以我们暂时不需要安装模块了. import datetime import time import calendar 1.获取到此时的准确时间 # 获取此时的时间 print time.localtime() //输出格式为: time.str

  • Python的时间模块datetime详解

    datetime模块用于是date和time模块的合集,datetime有两个常量,MAXYEAR和MINYEAR,分别是9999和1. datetime模块定义了5个类,分别是 1.datetime.date:表示日期的类 2.datetime.datetime:表示日期时间的类 3.datetime.time:表示时间的类 4.datetime.timedelta:表示时间间隔,即两个时间点的间隔 5.datetime.tzinfo:时区的相关信息 一.首先看一下datetime.date类

随机推荐