Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

add datetime64.__format__ similar to datetime.__format__ #17177

Copy link
Copy link
Open
@gerritholl

Description

@gerritholl
Issue body actions

I would like for np.datetime64 to support the format-specification language using the __format__ method, so that it can be used in formatting strings. I frequently want to format plot labels using datetimes extracted from time coordinates in xarray.DataArray objects. Those have dtype M8[ns]. To format the date in a string directly, I need to convert these to datetime.datetime — due to the precision (see #12550) I need to manually cast to a lower time-resolution first. So rather than f'{d:%Y}' I need to write f'{d.astype("M8[s]").astype(datetime.datetime):%Y}, which is somewhat cumbersome.

Reproducing code example:

import numpy as np
d = np.datetime64(1234567890987654321, "ns")
print(f"{d:%Y}")

Error message:

Traceback (most recent call last):
  File "mwe84.py", line 3, in <module>
    print(f"{d:%Y}")
ValueError: Invalid format specifier

Numpy/Python version information:

Numpy 1.19.1, Python 3.8.5.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      Morty Proxy This is a proxified and sanitized view of the page, visit original site.