人类的约会时间。

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 ParsePushReceiver参数   java如何从设备读取完整数据?   java将java_设置为home,但忽略错误   java如何从歌曲中对专辑进行排序?   java libnaude+windows 10 x64+Eclipse   java如何将maven目标更改为如图所示的想法中的quickicon?   java swing布局中心面板,可滚动显示多个窗口窗格   使用MOSQUITO代理的mqtt中的java SSL   java如何通过属性值获取XML字符串   java在服务器每次启动时停止GWT编译   java如何让javac搜索类路径的子目录?   可以比较java中的两个不同类吗?   JAVAAndroid活动内部类中的lang.NoClassDefFoundError   java HttpServletRequest获取请求头参数块   C++socket与java客户端的连接   java如何在Apache commons http客户端上使用SSL客户端证书   使用预编译正则表达式模式提高java速度   JavaRhino将两个已编译脚本合并为一个脚本