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:
- Returns:
Standardized timestamp in requested format: - “str”: String in CONFIG.FORMATS.TIMESTAMP format - “datetime”: datetime object - “timestamp”: Unix timestamp (float)
- Return type:
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:
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:
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.
- scitex_datetime.get_time_delta_seconds(start, end)[source]
Calculate time difference in seconds between two timestamps.
- 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)