python 如何转换日期时间数组中所有值的格式?

xpcnnkqh  于 2023-01-16  发布在  Python
关注(0)|答案(2)|浏览(107)

这是我的数据:

dates = np.arange("2018-01-01", "2021-12-31", dtype="datetime64[D]")

我现在要转换自:“2018年1月1日”-〉“2018年1月1日”[“月份-日期-年份”]格式
我该怎么做呢?有没有可能用我们想要转换的方式初始化它呢?我可以使用类似于:

for i in dates:
   i =  i.replace(i.month,i.strftime("%b"))
iyzzxitl

iyzzxitl1#

你可以试试这个:

from datetime import datetime

dates = np.arange("2018-01-01", "2021-12-31", dtype="datetime64[D]")
result_dates = []
for date in dates.astype(datetime):
    result_dates.append(date.strftime("%b-%d-%Y"))

但是您需要转换结果日期,如代码所示

m2xkgtsf

m2xkgtsf2#

我觉得有必要详细说明Silvio Mayolo上面非常相关但表面上被忽略的评论。(有关详细信息,请参阅How does Python store datetime internally?)因此,DateTime本身没有“格式”。只有当您要打印日期时才需要格式,因为您必须首先将时间戳转换为字符串。因此,你不需要初始化任何格式。2你只需要在打印时间戳的时候声明一个格式。3虽然你可以在你的 Dataframe 索引中以一个特定的格式将日期存储为一个字符串,你不能在它上面执行时间相关的功能没有首先转换字符串回到一个时间变量.即current_time.hour将返回一个整数与当前小时如果current_time是一个datetime变量,但如果它是一个格式化为时间戳的字符串(如“2023-01-15 17:23”),则会崩溃。了解这一点很重要,因为最终您将需要操作变量,并需要了解您使用的是时间还是字符串。

相关问题