- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Python日期时间模块arrow的具体使用由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
Python中有很多时间和日期处理的库,有time、datetime等,虽然提供了很完整的对日期、时间以及时区转换处理的功能,但是方法过多,不易于记忆,而且经常需要各种转换操作,非常繁琐,比如时间和时间戳的转换,格式化时间字符串转换等等,几乎每次使用都要先看一下教程文档。那么有没有使用起来更人性化的日期时间处理库呢?接下来就来看一下arrow日期时间库.
arrow是一个专门处理时间和日期的轻量级Python库,它提供了一种合理、人性化的方式来创建、操作、格式化、转换日期、时间和时间戳,可以比较轻易的创建具有时区意识的日期和时间实例。 可以使用pip install arrow进行安装.
。
Arrow可以很灵活的将多种格式的时间数据转换成Arrow对象,如下:
import arrowprint(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:04now_utc = now.to("utc")print(now_utc.format("YYYY-MM-DD hh:mm:ss")) # 2021-08-23 02:11:04now1 = now.replace(day=31, hour=12)print(now1.format("YYYY-MM-DD hh:mm:ss")) # 2021-08-31 12:11:04now2 = now.shift(months=-2)print(now2.format("YYYY-MM-DD hh:mm:ss")) # 2021-06-23 10:11:04
我们可以使用to()方法切换时区,使用replace()方法修改时间,使用shift()进行时间的前后推移.
In [52]: arrow.get('2018-03-22 23:35:34')Out[52]: <Arrow [2018-03-22T23:35:34+00:00]>
可以从字符串中通过格式参数搜索时间 。
In [13]: arrow.get('june waw born in May 1999', 'MMMM YYYY')Out[13]: <Arrow [1999-05-01T00:00:00+00:00]>
arrow对象属性 datetime,timestamp,naive,tzinfo 。
In [54]: t.datetimeOut[54]: datetime.datetime(2019, 3, 22, 21, 39, 0, 223147, tzinfo=tzlocal())In [55]: t.timestampOut[55]: 1553261940In [58]: t.tzinfoOut[58]: tzlocal()In [59]: t.naiveOut[59]: datetime.datetime(2019, 3, 22, 21, 39, 0, 223147)
In [60]: t.yearOut[60]: 2019In [62]: t.monthOut[62]: 3In [63]: t.dayOut[63]: 22In [64]: t.hourOut[64]: 21
shift方法获取某个时间之前或之后的时间,关键字参数为years,months,weeks,days,hours,seconds,microseconds 。
In [65]: t.shift(weeks=-1)Out[65]: <Arrow [2019-03-15T21:39:00.223147+08:00]>In [66]: t.shift(days=20)Out[66]: <Arrow [2019-04-11T21:39:00.223147+08:00]>In [67]: t.shift(hours=1)Out[67]: <Arrow [2019-03-22T22:39:00.223147+08:00]>
返回一个被替换后的arrow对象,原对象不变 。
In [68]: t.replace(year=2018)Out[68]: <Arrow [2018-03-22T21:39:00.223147+08:00]>In [69]: tOut[69]: <Arrow [2019-03-22T21:39:00.223147+08:00]>
In [70]: t.format()Out[70]: '2019-03-22 21:39:00+08:00'In [71]: t.format('YYYY-MM-DD HH-MM-SS')Out[71]: '2019-03-22 21-03-22'
In [72]: t.humanize()Out[72]: '2 hours ago
同Python内置日期datetime库一样,arrow对象也支持时间的大小对比,还有计算时间差操作,除此之外,还有很多意想不到的操作,感兴趣的话,可以查看官方文档:Arrow: Better dates & times for Python ― Arrow 1.1.1 documentation) 。
到此这篇关于Python日期时间模块arrow的具体使用的文章就介绍到这了,更多相关Python日期时间模块arrow 内容请搜索我以前的文章或继续浏览下面的相关文章希望大家以后多多支持我! 。
原文链接:https://juejin.cn/post/7000163373073580062 。
最后此篇关于Python日期时间模块arrow的具体使用的文章就讲到这里了,如果你想了解更多关于Python日期时间模块arrow的具体使用的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我在网上搜索但没有找到任何合适的文章解释如何使用 javascript 使用 WCF 服务,尤其是 WebScriptEndpoint。 任何人都可以对此给出任何指导吗? 谢谢 最佳答案 这是一篇关于
我正在编写一个将运行 Linux 命令的 C 程序,例如: cat/etc/passwd | grep 列表 |剪切-c 1-5 我没有任何结果 *这里 parent 等待第一个 child (chi
所以我正在尝试处理文件上传,然后将该文件作为二进制文件存储到数据库中。在我存储它之后,我尝试在给定的 URL 上提供文件。我似乎找不到适合这里的方法。我需要使用数据库,因为我使用 Google 应用引
我正在尝试制作一个宏,将下面的公式添加到单元格中,然后将其拖到整个列中并在 H 列中复制相同的公式 我想在 F 和 H 列中输入公式的数据 Range("F1").formula = "=IF(ISE
问题类似于this one ,但我想使用 OperatorPrecedenceParser 解析带有函数应用程序的表达式在 FParsec . 这是我的 AST: type Expression =
我想通过使用 sequelize 和 node.js 将这个查询更改为代码取决于在哪里 select COUNT(gender) as genderCount from customers where
我正在使用GNU bash,版本5.0.3(1)-发行版(x86_64-pc-linux-gnu),我想知道为什么简单的赋值语句会出现语法错误: #/bin/bash var1=/tmp
这里,为什么我的代码在 IE 中不起作用。我的代码适用于所有浏览器。没有问题。但是当我在 IE 上运行我的项目时,它发现错误。 而且我的 jquery 类和 insertadjacentHTMl 也不
我正在尝试更改标签的innerHTML。我无权访问该表单,因此无法编辑 HTML。标签具有的唯一标识符是“for”属性。 这是输入和标签的结构:
我有一个页面,我可以在其中返回用户帖子,可以使用一些 jquery 代码对这些帖子进行即时评论,在发布新评论后,我在帖子下插入新评论以及删除 按钮。问题是 Delete 按钮在新插入的元素上不起作用,
我有一个大约有 20 列的“管道分隔”文件。我只想使用 sha1sum 散列第一列,它是一个数字,如帐号,并按原样返回其余列。 使用 awk 或 sed 执行此操作的最佳方法是什么? Accounti
我需要将以下内容插入到我的表中...我的用户表有五列 id、用户名、密码、名称、条目。 (我还没有提交任何东西到条目中,我稍后会使用 php 来做)但由于某种原因我不断收到这个错误:#1054 - U
所以我试图有一个输入字段,我可以在其中输入任何字符,但然后将输入的值小写,删除任何非字母数字字符,留下“。”而不是空格。 例如,如果我输入: 地球的 70% 是水,-!*#$^^ & 30% 土地 输
我正在尝试做一些我认为非常简单的事情,但出于某种原因我没有得到想要的结果?我是 javascript 的新手,但对 java 有经验,所以我相信我没有使用某种正确的规则。 这是一个获取输入值、检查选择
我想使用 angularjs 从 mysql 数据库加载数据。 这就是应用程序的工作原理;用户登录,他们的用户名存储在 cookie 中。该用户名显示在主页上 我想获取这个值并通过 angularjs
我正在使用 autoLayout,我想在 UITableViewCell 上放置一个 UIlabel,它应该始终位于单元格的右侧和右侧的中心。 这就是我想要实现的目标 所以在这里你可以看到我正在谈论的
我需要与 MySql 等效的 elasticsearch 查询。我的 sql 查询: SELECT DISTINCT t.product_id AS id FROM tbl_sup_price t
我正在实现代码以使用 JSON。 func setup() { if let flickrURL = NSURL(string: "https://api.flickr.com/
我尝试使用for循环声明变量,然后测试cols和rols是否相同。如果是,它将运行递归函数。但是,我在 javascript 中执行 do 时遇到问题。有人可以帮忙吗? 现在,在比较 col.1 和
我举了一个我正在处理的问题的简短示例。 HTML代码: 1 2 3 CSS 代码: .BB a:hover{ color: #000; } .BB > li:after {
我是一名优秀的程序员,十分优秀!