Skip to content

datetime64 data type in arrays is always 'datetime64[ns]' #5750

Closed
@sjsmith757

Description

@sjsmith757

I think this is probably an enhancement request, but there doesn't seem to be any documentation related to this and it doesn't really match the behavior I would expect. From what I can tell, xarray doesn't support datetime arrays with units other than [ns]. For example,

times = np.arange(np.datetime64('2005-01'),np.datetime64('2007-01'),np.timedelta64(1,'M'))
xrtimes = xr.DataArray(times,dims=['time'],coords={'time':times},name='time')

I would expect xrtimes.dtype to return dtype('<M8[M]') as times.dtype does, but instead it returns dtype('<M8[ns]'). Even looking at xrtimes.indexes['time'] to ensure it isn't just a problem with the repr, the dtype is listed as 'datetime64[ns]'. Trying to do xrtimes.astype('datetime64[M]') does nothing. It would be nice if this didn't simply silently fail, or if there were some documentation explaining that datetime64 objects have to be in units of ns.

In an ideal world, it would be nice if xarray supported datetime units other than ns, but I understand with internals that may be more trouble than its worth...

I'm using
xarray=0.19.0
pandas=1.3.1
numpy=1.21.1

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