一篇文章带你详细了解python中一些好用的库
作者:CXYhh121 发布时间:2022-03-18 09:02:19
时间库—arrow
使用背景
日期时间处理在实际应用场景中无处不在,所以这也成了编程语言中必不可少的模块,Python 也不例外。但是,你知道在Python中有多少个相关的模块吗?datetime、time、calendar、 dateutil、 pytz
等等。 你知道有多少种数据类型吗?date、time、datetime、tzinfo、timedelta
等等。
博主在一次需求中遇到需要统计近几个月间的数据,前端传给我的是当前的时间戳,要通过时间戳来往前推三个月,或者四个月,半年的时间,如果只能通过加减时间的话就会变得很麻烦,所以想到了使用python的时间库----arrow
在介绍时间库之前,我们来看一看python的各个时间格式间是如何转换的
不管怎样,你终究还是要熟练这些模块和API操作的,记不住没关系,至少你都要手动敲几遍,下次遇到时要能做到翻看文档能快速定位到某个类某个方法是做什么用、怎么用。
但今天我要强烈安利给你的这个时间日期库:Arrow。它的灵感来自于 requests 库。将所有繁杂的东西全部隐藏于身后,留给你的是 for humans 接口。充分诠释了 keep it simple and stupid 这句话的含义。
安装arrow
pip install arrow
arrow使用
获取当前时间
获取不同时间格式
游标卡尺shift
这个是arrow中我认为最好用的一个属性,他可以让你随便将时间进行向前或者向后的推移,基本可以满足你所有关于时间上推算的操作,抓紧用起来吧
向后推算时间
向前推算时间
humanize
humanize 方法是相对于当前时刻表示为“多久以前”的一种可读行字符串形式,默认是英文格式,指定 locale 可显示相应的语言格式。
format
获取arrow对象
get方法是最好用的获取arrow对象的方式
# 不带参数,等价与 utcnow()
>>> arrow.get()
<Arrow [2018-08-24T07:11:50.528742+00:00]>
# 接受时间戳参数
>>> arrow.get(1535113845)
# 接受一个datetime对象
>>> arrow.get(datetime(2018,8,24))
<Arrow [2018-08-24T00:00:00+00:00]>
# 接收一个date对象
>>> from datetime import date
>>> arrow.get(date(2018,7,24))
<Arrow [2018-07-24T00:00:00+00:00]>
# 接收日期格式的字符串
>>> arrow.get("2018-08-11 12:30:56")
<Arrow [2018-08-11T12:30:56+00:00]>
# 接收日期字符串,并指定格式
>>> arrow.get("18-08-11 12:30:56", "YY-MM-DD HH:mm:ss")
<Arrow [2018-08-11T12:30:56+00:00]>
arrow的类型转换和时区修改
# 字符串转时间
print(arrow.get('2017-10-28T00:00:00+0800'))
# print(arrow.get('2017-10-28', 'YYYY-MM-DD')) # 字符串转时间(不推荐这样用,没有设时区)
print(arrow.get('2017-10-28', 'YYYY-MM-DD', tzinfo='local')) # (推荐)
print(arrow.get('2017-10-28', 'YYYY-MM-DD', tzinfo='Asia/Shanghai')) # 这样也可以
print(arrow.get('2017-10-28 05:30:30', 'YYYY-MM-DD HH:mm:ss', tzinfo='local')) # (推荐)
print('-------------')
# 时间戳
print(local.timestamp) # 时间戳
print(arrow.get('1509120000', tzinfo='local')) # 时间戳字符串,转换为本时区的时间
# 时间转为字符串,输出(格式化)
print(local.format("YYYY-MM-DD"))
print(local.format("YYYY-MM-DD HH:mm:ss"))
print(local.replace(minutes=-1).humanize(locale='zh')) # 本地化个性时间短语: 刚才,1分钟前,1天前,等(zh_tw 更多语言的支持,去查看arrow/locales.py)
python的arrow库的使用暂时介绍到这里,下篇介绍python处理数据的pandas库,让你能够轻松的处理python中复杂而海量的数据。
来源:https://blog.csdn.net/chenxiyuehh/article/details/120325347


猜你喜欢
- 以SQL Server中的Northwind示范数据库为例,利用DTS设计器,进行数据的转移。转移任务的步骤:◆1. 新建目的数据库NOrt
- 可以说,互联网就是由一个个链接进行信息流通的。没有连接的网站如同一潭死水,毫无生气。当一个访客进入你的网站,在浏览的过程中,如果你的内容不引
- 详细:1.闵可夫斯基距离(Minkowski Distance)2.欧氏距离(Euclidean Distance)3.曼哈顿距离(Manh
- 了解SQL Server 2005数据库的朋友可能都知道,tempdb系统数据库是一个全局资源,可供连接到SQL Server 2005实例
- 索引相关1. 查询(或更新,删除,可以转换为查询)没有用到索引这是最基础的步骤,需要对sql执行explain查看执行计划中是否用到了索引,
- 前言本文主要给大家介绍了关于python计算时间差(返回天数)的相关资料,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧方法
- 目录一、for在 Python 中使用循环进行迭代二、使用 Python 的 enumerate()三、用 Python 练习 enumer
- 脚手架是啥从前我总觉得脚手架是个很高大上的东西,好像得牛叉:ox:一点的人才写的出来,可望而不可即。其实并不是因为困难使我们放弃,而是因为放
- requests是python实现的简单易用的HTTP库,使用起来比urllib简洁很多因为是第三方库,所以使用前需要cmd安装pip in
- 目录多线程(连接池)操作MySQL插入数据1.主要模块2.创建连接池3.数据预处理4.线程任务5.启动多线程6.完整示例7.思考/总结多线程
- 第1章 新建工程和创建app新建工程和创建app就不用贴出来了,我这里是测试图片上传的功能能否实现,所以项目都是新的,正常在以有的app下就
- 场景当我提交了本次修改到本地和远程分支后,发现我本次提交还少了一些修改内容,或者说本次修改是完全错误的,然而也push到远程仓库去了。如何回
- 本文实例讲述了PHP实现网页内容html标签补全和过滤的方法。分享给大家供大家参考,具体如下:如果你的网页内容的html标签显示不全,有些表
- 遇到这样一个需求,有一张表,要给这张表新增一个字段delta,delta的值等于每行的c1列的值减去上一行c1列的值。我的解决方案,可以通过
- 禁用admin中models的编辑链接和添加删除按钮方法如下:class MyModelAdmin(models.ModelAdmin):
- 本文实例分析了Python作用域用法。分享给大家供大家参考,具体如下:每一个编程语言都有变量的作用域的概念,Python也不例外,以下是Py
- SQL分页查询:背景在公司的系统中有一个平台是 做配置管理的 就是所谓的 CRUD 的平台,但是点击后进去到页面第一次看到的是一次查询的页面
- 抽象基类的常见用途:实现接口时作为超类使用。然后,说明抽象基类如何检查具体子类是否符合接口定义,以及如何使用注册机制声明一个类实现了某个接口
- 接口模块需要用 API 来提供对外服务的接口,当然也可以直接连数据库来取,但是这样就需要知道数据库的连接信息,不太安全,而且需要配置连接,所
- 目录一、Python字典1.什么是字典2.字典的创建方式2.1 通过其他字典创建2.2 通过关键字参数创建2.3 通过键值对的序列创建2.4