You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将xarray.DataArray中的日期时间字符串转为datetime对象?

解决xarray.DataArray字节型日期字符串转datetime64的问题

问题原因

直接使用da.astype('datetime64')失败,是因为numpy无法直接解析带Z后缀的字节格式日期字符串,必须先将字节串转换为普通字符串再处理。

解决方案步骤

  1. 解码字节串为普通字符串
    使用xarray的字符串方法str.decode('utf-8')将字节型字符串转换为UTF-8编码的普通字符串:

    da_str = da.str.decode('utf-8')
    
  2. 转换为datetime64类型
    用xarray内置的xr.to_datetime()方法直接转换,该方法支持识别带Z(UTC标识)的ISO格式日期:

    import xarray as xr
    
    da_datetime = xr.to_datetime(da_str)
    

    也可以借助pandas的pd.to_datetime()实现相同效果:

    import pandas as pd
    
    da_datetime = xr.DataArray(pd.to_datetime(da_str))
    

完整示例代码

import xarray as xr

# 示例DataArray
da = xr.DataArray([b'2018-07-31T20:13:22.084Z', b'2018-07-31T20:13:22.599Z'])

# 解码并转换
da_str = da.str.decode('utf-8')
da_datetime = xr.to_datetime(da_str)

print(da_datetime)

输出结果会是带UTC时区的datetime64类型数组:

<xarray.DataArray (dim_0: 2)>
array(['2018-07-31T20:13:22.084000000', '2018-07-31T20:13:22.599000000'],
      dtype='datetime64[ns]')

内容的提问来源于stack exchange,提问作者DZN

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 22:00:07