btrdb.utils.timez#

Time related utilities

btrdb.utils.timez.currently_as_ns()#

Returns the current UTC time as nanoseconds since epoch

btrdb.utils.timez.datetime_to_ns(dt)#

Converts a datetime object to nanoseconds since epoch. If a timezone aware object is received then it will be converted to UTC.

Parameters:

dt (datetime) –

Returns:

nanoseconds

Return type:

int

btrdb.utils.timez.ns_delta(days=0, hours=0, minutes=0, seconds=0, milliseconds=0, microseconds=0, nanoseconds=0)#

Similar to timedelta, ns_delta represents a span of time but as the total number of nanoseconds.

Parameters:
  • days (int, float, decimal.Decimal) – days (as 24 hours) to convert to nanoseconds

  • hours (int, float, decimal.Decimal) – hours to convert to nanoseconds

  • minutes (int, float, decimal.Decimal) – minutes to convert to nanoseconds

  • seconds (int, float, decimal.Decimal) – seconds to convert to nanoseconds

  • milliseconds (int, float, decimal.Decimal) – milliseconds to convert to nanoseconds

  • microseconds (int, float, decimal.Decimal) – microseconds to convert to nanoseconds

  • nanoseconds (int) – nanoseconds to add to the time span

Returns:

amount of time in nanoseconds

Return type:

int

btrdb.utils.timez.ns_to_datetime(ns)#

Converts nanoseconds to a datetime object (UTC)

Parameters:

ns (int) – nanoseconds since epoch

Returns:

nanoseconds since epoch as a datetime object

Return type:

datetime

btrdb.utils.timez.to_nanoseconds(val)#

Converts datetime, datetime64, float, str (RFC 2822) to nanoseconds. If a datetime-like object is received then nanoseconds since epoch is returned.

Parameters:

val (datetime, datetime64, float, str) – an object to convert to nanoseconds

Returns:

object converted to nanoseconds

Return type:

int

Notes

The following string formats are supported for conversion.

Format String

Description

%Y-%m-%d %H:%M:%S.%f%z

RFC3339 format

%Y-%m-%d %H:%M:%S.%f

RFC3339 with UTC default timezone

%Y-%m-%dT%H:%M:%S.%fZ

JSON encoding, UTC timezone

%Y-%m-%dT%H:%M:%SZ

JSON encoding, UTC timezone, without μs

%Y-%m-%dT%H:%M:%S.%f%z

JSON-like encoding

%Y-%m-%dT%H:%M:%S.%f

JSON-like encoding, UTC default timezone

%Y-%m-%d %H:%M:%S%z

human readable date time with TZ

%Y-%m-%d %H:%M:%S

human readable date time UTC default

%Y-%m-%d

midnight at a particular date