Python中如何将numpy.datetime64转为datetime并拆分年月日?
解决方案
方法一:纯Numpy快速提取(推荐)
直接将numpy.datetime64转换为日期精度类型,再转为Python原生datetime.date对象提取年、月、日:
# 处理单个元素 date_day = tiempo[0].astype('datetime64[D]') # 保留日期部分,忽略时分秒 date_obj = date_day.item() # 转为Python datetime.date对象 ymd_tuple = (date_obj.year, date_obj.month, date_obj.day) # 输出示例:(2010, 1, 1)
如果是批量处理整个时间数组:
# 批量转换为日期精度数组 date_array = tiempo.astype('datetime64[D]') # 转为Python datetime对象数组 datetime_objs = date_array.astype(object) # 批量生成年、月、日元组数组 ymd_tuples = np.array([(d.year, d.month, d.day) for d in datetime_objs])
方法二:修正Timestamp转换方式
你之前的Timestamp方法因时区匹配问题可能失效,调整后可正常使用:
from datetime import datetime # 计算时间戳(注意匹配原时间时区,若原时间是UTC用utcfromtimestamp) ts = (tiempo[0] - np.datetime64('1970-01-01T00:00:00')) // np.timedelta64(1, 's') date_obj = datetime.fromtimestamp(ts) # 本地时区 # 若原时间是UTC,改用:date_obj = datetime.utcfromtimestamp(ts) ymd_tuple = (date_obj.year, date_obj.month, date_obj.day)
内容的提问来源于stack exchange,提问作者Ramiro chalar
相关产品推荐
相关产品推荐

