Epoch class#

The representation of an epoch, that is of a specific point in time, be it in the future or in the past, can be rather confusing. In pykep we opted to offer a dedicated class called epoch to offer a simple interface and, under the hoods, interfacing seamlessly both to the c++ std::chrono library and to the python datetime module.

Note

In pykep` the default Julian Date is the Modified Julian Date, defined as a float representing the number of days since the start of 2000-1-1.

Note

The date in pykep does account for leap seconds. If the user wishes to use the exact ISO 8601 representation of some epoch, also including leap seconds, he will have to account for the offset himself. As of of 2023 this may account to maximum 28 seconds. More info on leap seconds.


class pykep.epoch(when: float, julian_type=MJD2000)#

Represents a specific point in time.

Constructs an epoch from a Julian Date.

Args:

when (float): the Julian Date (days since reference)

julian_type (julian_type): one of MJD2000, JD or MJD

Examples:
>>> import pykep as pk
>>> pk.epoch(12.3, pk.epoch.julian_type.MJD2000)
2000-01-13T07:12:00.000000
Alternative Constructor:

__init__( when: str, string_format = pk.epoch.string_format.ISO )

Constructs an epoch from a string.

Args:

when (str): a date

string_format (:class`~pykep.epoch.string_format`): string format.

Examples:
>>> import pykep as pk
>>> pk.epoch("2000-01-14T00:00:00.000001")
2000-01-14T00:00:00.000001
Alternative Constructor:

__init__( when: datetime.datetime )

Constructs an epoch from a datetime object.

Args:

when (datetime.datetime): a date

Examples:
>>> import pykep as pk
>>> from datetime import datetime
>>> pk.epoch(datetime(year=2000, month=1, day=13))
2000-01-13T00:00:00.000000
property jd#

The Julian Date

class julian_type#

Members:

MJD2000 : Modified Julian Date 2000.

MJD : Modified Julian Date.

JD : Julian Date.

property mjd#

The Modified Julian Date

property mjd2000#

The Modified Julian Date 2000

static now()#

Returns a pykep.epoch with the current UTC date.

class string_format#

Members:

ISO : ISO 8601 format for dates.