从字符串中获取日期时间格式 python

Get datetime format from string python

在Python中有多个日期时间解析器,可以在不提供日期时间格式的情况下自动解析日期字符串。我的问题是我不需要转换日期时间,我只需要日期时间格式。

示例: 从“2021-01-01”开始,我想要类似“%Y-%m-%d”或“yyyy-MM-dd”的内容。

我唯一的想法是尝试使用不同的格式进行转换并获得成功,但我不想列出所有可能的格式。

我正在使用 pandas,因此我可以使用适用于系列或字符串 DateTime 解析器的方法。

有什么想法吗?

pandas中,这是通过pandas._libs.tslibs.parsing.guess_datetime_format

实现的
from pandas._libs.tslibs.parsing import guess_datetime_format

guess_datetime_format('2021-01-01')

# '%Y-%m-%d'

由于 day/month 总是会出现歧义,您可以指定 dayfirst 的大小写:

guess_datetime_format('2021-01-01', dayfirst=True)
# '%Y-%d-%m'

请看看哪一个最适合你:

df['Column'] = df['Column'].dt.strftime("%Y-%m-%d")

df['Column'] = pd.to_datetime(df['Column']).dt.date

df['Column'] = pd.to_datetime(df['Column']).dt.normalize()

前两个选项的数据类型为对象;

而第 3 个具有规范化的将是日期时间。

你可以这样试试,不过我不确定。

for col in  df.select_dtypes(include['datetime64']).columns.tolist():
    df[col] = df[col].astype(str)