人类的约会时间。

maya的Python项目详细描述


https://img.shields.io/pypi/v/maya.svghttps://travis-ci.org/kennethreitz/maya.svg?branch=masterhttps://img.shields.io/badge/SayThanks-!-1EAEDB.svg

在python中使用datetime非常令人沮丧,特别是在处理 在不同的系统上有不同的区域设置。这个库是为了制造 简单的事情容易得多同时承认时间是一种幻觉 (时区加倍)。

日期时间应该通过为人类编写的api进行交互。

maya主要是围绕着从网站解析datetime数据而构建的。

https://farm4.staticflickr.com/3702/33288285996_5b69d2b8f7_k_d.jpg

艺术由Sam Flores(照片由Kenneth Reitz)。

如果你对资助Kenneth Reitz开源感兴趣,可以考虑visiting this link。您的支持对激励的可持续性有很大帮助,因为开源不再是我日常工作的一部分。

玛雅的基本用法

看,人类的约会时间!

>>> now=maya.now()<MayaDT epoch=1481850660.9>

>>> tomorrow=maya.when('tomorrow')<MayaDT epoch=1481919067.23>

>>> tomorrow.slang_date()'tomorrow'

>>> tomorrow.slang_time()'23 hours from now'

# Also: MayaDT.from_iso8601(...)
>>> tomorrow.iso8601()'2017-02-10T22:17:01.445418Z'

# Also: MayaDT.from_rfc2822(...)
>>> tomorrow.rfc2822()'Fri, 10 Feb 2017 22:17:01 GMT'

# Also: MayaDT.from_rfc3339(...)
>>> tomorrow.rfc3339()'2017-02-10T22:17:01.44Z'

>>> tomorrow.datetime()datetime.datetime(2016, 12, 16, 15, 11, 30, 263350, tzinfo=<UTC>)

# Automatically parse datetime strings and generate naive datetimes.
>>> scraped='2016-12-16 18:23:45.423992+00:00'>>> maya.parse(scraped).datetime(to_timezone='US/Eastern',naive=True)datetime.datetime(2016, 12, 16, 13, 23, 45, 423992)

>>> rand_day=maya.when('2011-02-07',timezone='US/Eastern')<MayaDT epoch=1297036800.0>

# Maya speaks Python.
>>> m=maya.MayaDT.from_datetime(datetime.utcnow())>>> print(m)Wed, 20 Sep 2017 17:24:32 GMT

>>> m=maya.MayaDT.from_struct(time.gmtime())>>> print(m)Wed, 20 Sep 2017 17:24:32 GMT

>>> m=maya.MayaDT(time.time())>>> print(m)Wed, 20 Sep 2017 17:24:32 GMT

>>> rand_day.day7

>>> rand_day.add(days=10).day17

# Always.
>>> rand_day.timezoneUTC

# Range of hours in a day:
>>> maya.intervals(start=maya.now(),end=maya.now().add(days=1),interval=60*60)<generator object intervals at 0x105ba5820>

# snap modifiers
>>> dt=maya.when('Mon, 21 Feb 1994 21:21:42 GMT')>>> dt.snap('@d+3h').rfc2822()'Mon, 21 Feb 1994 03:00:00 GMT'

高级使用玛雅

除了时间戳,maya还包含一个非常强大的MayaInterval类,它表示一个时间范围(例如事件)。有了这个类,您就可以巧妙而轻松地执行大量高级日历计算。

例如:

>>> frommayaimportMayaInterval
# Create an event that is one hour long, starting now.
>>> event_start=maya.now()>>> event_end=event_start.add(hours=1)>>> event=MayaInterval(start=event_start,end=event_end)

从这里开始,您可以使用许多方法将此事件与其他事件进行比较。

为什么这个有用?

  • 所有时区代数在所有计算机上的行为都是相同的,与系统的区域设置无关。
  • 完成ISO 8601和RFC 2822日期时间戳的对称导入和导出。
  • 为人和机器写的/由人和机器写的日期的奇妙解析(maya.when()vsmaya.parse())。
  • 支持人类俚语,包括导入和导出(例如一小时前)。
  • 无论是否附加TZINFO,都可以很容易地生成日期时间。
  • 这个库是以历元时间为基础的,但是1970年1月1日之前的日期确实是通过负整数支持的。
  • 玛雅从不惊慌,总是拿着毛巾。

那德洛林、阿罗和钟摆呢?

所有这些项目相辅相成,是朋友。例如,钟摆有助于增强maya的解析能力。

例如,arrow是一个很棒的库,但不是我想要的datetime库。在很多方面,它比玛雅更好。在某些方面,在我看来,不是。

我只是想要一个对日期时间有意义的api,它对我想做的所有事情都有意义,特别是在处理时区代数时。Arrow没有做我需要的所有事情(但它做的更多!)玛雅做的正是我需要的。

我个人认为这些项目是相辅相成的。玛雅是伟大的解析网站,并处理日历事件!

安装玛雅

使用pipenv

$ pipenv install maya

喜欢吗?

Say Thanks

如何贡献

  1. 检查打开的问题或打开一个新的问题,开始围绕功能想法或错误的讨论。
  2. 在github上分叉the repository,开始对master分支(或其分支)进行更改。
  3. 编写一个测试,显示错误已修复或功能按预期工作。
  4. 发送一个pull请求并对维护程序进行bug操作,直到它被合并并发布。:)确保将自己添加到AUTHORS

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Android:收到无声短信?   java Android清单内部类应使用$,而不是   是否有方法使用java客户端从Amqp 0.9.1 RabbitMq代理获取绑定到队列的所有头?   比较2个int数组中匹配的数字   java如何模拟可选的自动连接字段   java在第一次尝试保存数据后,在关闭程序后无法打开   批处理文件重命名–从列表中插入文本(在Python或Java中)   递归如何在Java中递归地附加两个链表?   java EditText在特定Android设备上不起作用   序列化Java序列化:每个文件一个对象   java AES CTR如何附加到CipherOutputStream?   java Apache Commons CSV不会忽略缺少的列   java查询bean为空,如何让它填充?   java BEAM:ORACLE连接器:数字数据类型:非法参数类型异常   tomcat7 java远程调试Tomcat应用程序:为什么JVM不监听?   底部表单中的java应用程序流,带有片段   Android中txt文件数据与输入字符串的java比较   java将多个JAR上载到gradle中的repo   java会话。getAttribute在禁用Cookie时返回null   java如何向ImageView添加项目列表