Skip to main content

A lightweight wrapper around datetime with a focus on timezone handling and few dependencies (datetime, pytz and six).

Project description

Python-MomentX
==============

A lightweight wrapper around datetime with a focus on timezone handling and
few dependencies (only datetime, pytz and six).

Provides a immutable date/time type that always has an attached timezone.

This module was originally derived from the [moment module](https://github.com/zachwill/moment)
by Zach Williams. Following the main differences:

* MomentX dates always contain a timezone
* comparison made easy because all MomentX objects are timezone-offset-aware
* strptime with timezone support (%z)
* MomentX objects are immutable (add(), replace(), etc does not alter the object)
* api methods were converted to @classmethod
* zero() is now a method and not a property
* python3 support
* removed js like date formatting options and 'times' dependency

Typical usage may look like this:
```

>>> from momentx import MomentX
>>>
>>> MomentX.utc(2012, 12, 18)
<Moment(2012-12-18 00:00:00+0000 / UTC)>
>>>
>>> MomentX(2012, 12, 18, timezone="UTC")
<Moment(2012-12-18 00:00:00+0000 / UTC)>
>>>
>>> MomentX(2012, 12, 18, timezone="Europe/Berlin")
<Moment(2012-12-18 00:00:00+0100 / Europe/Berlin)>
>>>
>>> MomentX(2012, 12, 18, timezone="Europe/Berlin").astimezone("UTC")
<Moment(2012-12-17 23:00:00+0000 / UTC)>
>>>
>>> MomentX(2012, 12, 18, 10, 11, 12, timezone="UTC").replace(hours=3)
<Moment(2012-12-18 03:11:12+0000 / UTC)>
>>>
>>> MomentX(2012, 12, 18, 10, 11, 12, timezone="UTC").zero()
<Moment(2012-12-18 00:00:00+0000 / UTC)>
>>>
>>> MomentX.utc(2012, 12, 18).add(days=2)
<Moment(2012-12-20 00:00:00+0000 / UTC)>
>>>
>>> MomentX.utcnow()
<Moment(2016-05-17 18:30:40+0000 / UTC)>
>>>
>>> MomentX.utcnow().strftime('%Y-%m-%d %H:%M:%S%z')
'2016-05-17 18:31:20+0000'

```

Public repository
-----------------

https://github.com/berlincode/momentx


License
-------

Code and documentation copyright Ulf Bartel. Code is licensed under the
[new-style BSD license](./LICENSE.txt).



v0.1.0, 2016-05-17 -- Initial public release.
v0.2.0, 2017-08-26 -- added epoch seconds as possible input for momentx(), fix division, added tests, cleanup

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

momentx-0.2.0.tar.gz (6.7 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page