Source code for pyrfu.pyrf.datetime642iso8601

#!/usr/bin/env python
# -*- coding: utf-8 -*-

# Built-in imports
from typing import Union

# 3rd party imports
import numpy as np
from numpy.typing import NDArray

__author__ = "Louis Richard"
__email__ = "louisr@irfu.se"
__copyright__ = "Copyright 2020-2024"
__license__ = "MIT"
__version__ = "2.4.13"
__status__ = "Prototype"


[docs]def datetime642iso8601( time: Union[np.datetime64, NDArray[np.datetime64]], ) -> NDArray[np.str_]: r"""Convert datetime64 in ns units to ISO 8601 time format . Parameters ---------- time : numpy.datetime64 or numpy.ndarray Time in datetime64 in ns units. Returns ------- time_iso8601 : numpy.ndarray Time in ISO 8601 format. See Also -------- pyrfu.pyrf.datetime642iso8601 """ if isinstance(time, np.datetime64): time_datetime64 = np.atleast_1d(time).astype("datetime64[ns]") elif isinstance(time, np.ndarray) and time.dtype in [ "<M8[ns]", "<M8[us]", "<M8[ms]", ]: time_datetime64 = time.astype("datetime64[ns]") else: raise TypeError("time must be numpy.datetime64 or numpy.ndarray") # Convert to string time_iso8601 = time_datetime64.astype(str) time_iso8601 = np.atleast_1d(np.squeeze(np.stack([time_iso8601]))) return time_iso8601