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
==============

[![Travis CI](https://travis-ci.org/berlincode/momentx.svg?branch=master&style=flat)](https://travis-ci.org/berlincode/momentx)
[![Python versions](https://img.shields.io/pypi/pyversions/momentx.svg)](https://pypi.python.org/pypi/momentx/)
[![new-style BSD](https://img.shields.io/pypi/l/momentx.svg)](https://github.com/berlincode/momentx/blob/master/LICENSE.txt)


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.3.tar.gz (7.3 kB view details)

Uploaded Source

File details

Details for the file momentx-0.2.3.tar.gz.

File metadata

  • Download URL: momentx-0.2.3.tar.gz
  • Upload date:
  • Size: 7.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for momentx-0.2.3.tar.gz
Algorithm Hash digest
SHA256 036768814c6dc30503f37a7c3a76276ce90bebe23d06e72d7313ae7bfc39e233
MD5 938bb5e4e88730814874ebccecd609c0
BLAKE2b-256 36d3d412998167aaf5ccf2a18f51211c67b0fdaded04b3846eab013b1c9eec60

See more details on using hashes here.

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