scitex_datetime

scitex-datetime — datetime helpers (standalone).

Provides utilities for datetime operations including: - linspace: Create linearly spaced datetime arrays - normalize_timestamp: Standardize timestamps to consistent format - to_datetime: Convert various formats to datetime objects - validate_timestamp_format: Validate timestamp string format - format_for_filename: Format timestamps for filenames - format_for_display: Format timestamps for display - get_time_delta_seconds: Calculate time differences

scitex_datetime.linspace(start_dt, end_dt, n_samples=None, sampling_rate=None)[source]

Create a linearly spaced array between two datetime objects.

Parameters:
  • start_dt (datetime.datetime) – Starting datetime object

  • end_dt (datetime.datetime) – Ending datetime object

  • n_samples (int, optional) – Number of samples to create (mutually exclusive with sampling_rate)

  • sampling_rate (float, optional) – Sampling rate in Hz (mutually exclusive with n_samples)

Returns:

Array of datetime objects evenly spaced between start_dt and end_dt

Return type:

np.ndarray

Raises:
  • TypeError – If start_dt or end_dt is not a datetime object

  • ValueError – If start_dt >= end_dt, or if both/neither n_samples and sampling_rate provided

Examples

>>> import datetime
>>> start = datetime.datetime(2023, 1, 1, 0, 0, 0)
>>> end = datetime.datetime(2023, 1, 1, 0, 0, 10)
>>> result = linspace(start, end, n_samples=11)
>>> len(result)
11
scitex_datetime.normalize_timestamp(timestamp, return_as='str', normalize_utc=True)[source]

Standardize any timestamp format to requested output type.

Parameters:
  • timestamp (datetime, str, int, or float) – Timestamp in any supported format

  • return_as (str) – Output format: “str” (default), “datetime”, or “timestamp”

  • normalize_utc (bool) – If True, normalize to UTC timezone

Returns:

Standardized timestamp in requested format: - “str”: String in CONFIG.FORMATS.TIMESTAMP format - “datetime”: datetime object - “timestamp”: Unix timestamp (float)

Return type:

str, datetime, or float

Examples

>>> from datetime import datetime
>>> dt = datetime(2010, 6, 18, 10, 15, 0)
>>> normalize_timestamp(dt, return_as="str", normalize_utc=False)
'2010-06-18 10:15:00'
scitex_datetime.to_datetime(timestamp)[source]

Convert various timestamp formats to datetime object.

Parameters:

timestamp (datetime, str, int, or float) – Timestamp in any supported format

Returns:

Datetime object

Return type:

datetime

Raises:
  • ValueError – If string format cannot be parsed

  • TypeError – If timestamp type is not supported

scitex_datetime.format_for_filename(timestamp)[source]

Format timestamp for use in filenames (no spaces or colons).

Parameters:

timestamp (datetime or str) – Timestamp to format

Returns:

Filename-safe timestamp string (YYYYMMDD_HHMMSS)

Return type:

str

Examples

>>> from datetime import datetime
>>> dt = datetime(2010, 6, 18, 10, 15, 0)
>>> format_for_filename(dt)
'20100618_101500'
scitex_datetime.format_for_display(timestamp)[source]

Format timestamp for human-readable display.

Parameters:

timestamp (datetime or str) – Timestamp to format

Returns:

Human-readable timestamp string

Return type:

str

Examples

>>> from datetime import datetime
>>> dt = datetime(2010, 6, 18, 10, 15, 0)
>>> format_for_display(dt)
'2010-06-18 10:15:00'
scitex_datetime.validate_timestamp_format(timestamp_str)[source]

Validate that a timestamp string matches the standard format.

Parameters:

timestamp_str (str) – Timestamp string to validate

Returns:

True if string matches standard format

Return type:

bool

scitex_datetime.get_time_delta_seconds(start, end)[source]

Calculate time difference in seconds between two timestamps.

Parameters:
  • start (datetime or str) – Start timestamp

  • end (datetime or str) – End timestamp

Returns:

Time difference in seconds

Return type:

float

scitex_datetime.parse_patient_recording_start_format(patient_recording_start_str)[source]

Parse recording start time from CONFIG.PATIENTS.REC_START format.

Parameters:

patient_recording_start_str (str) – Recording start time string in format “DD/MM/YYYY, HH:MM:SS”

Returns:

Parsed datetime object

Return type:

datetime

Examples

>>> parse_patient_recording_start_format("10/06/2010, 07:40:34")
datetime.datetime(2010, 6, 10, 7, 40, 34)