【问题标题】:How to fetch date from datetime?如何从日期时间获取日期?
【发布时间】:2021-04-06 07:17:44
【问题描述】:

我在 .XLS 文件中有以下格式的日期时间信息,例如 21 年 3 月 15 日 01.32.50.395000 下午

我需要将此时间戳转换为日期对象(并在新列中更新它)。如何从此日期时间对象中获取日期?

更新:这是我的解决方案

from datetime import datetime

datetime_str = '15-MAR-21 01.32.50.395000 PM'

datetime_object = datetime.strptime(datetime_str, '%d-%b-%y %H.%M.%S.%f %p')

print(type(datetime_object))
print(datetime_object)  # printed in default format

print(datetime_object.date())

有没有更好的解决方案?

【问题讨论】:

  • 阅读 datetime.datetime.strptime 文档,它告诉您如何执行此操作。如果您有问题,请在此处发布您尝试使用它的方式。
  • @576i 感谢您的意见,我刚刚发布了一个解决方案,请您看看
  • 你所拥有的就是最好的解决方案。
  • 解析datetime_str的字符串有错误:您应该将%H更改为%I,因为您使用的是AMPM。但是,这不应该影响date() 的结果。

标签: python date xls python-datetime


【解决方案1】:

您可以简单地导入日期时间库,然后为此使用 datetime.datetime.date() 方法

【讨论】:

    【解决方案2】:

    假设您的文件名为date_file.xlsx,并且带有日期的列名为DATE

    import pandas as pd
    import datetime
    
    df = pd.read_excel(
        'date_file.xlsx',
        converters={
            'DATE': lambda x: datetime.datetime.strptime(x, '%d-%b-%y %I.%M.%S.%f %p').date()
        },
        engine='openpyxl',
    )
    

    df 的列DATE 将包含所有转换后的日期。如果您更喜欢 datetime.datetime 对象,请从解析函数中删除 .date()

    在您的示例中,15-MAR-21 01.32.50.395000 PM 将转换为 2021-03-15,如果您删除 .date(),则转换为 2021-03-15 13:32:50.395

    【讨论】:

    • OP 似乎需要一个新列;您的代码 sn-p 在导入时转换(并且不更新 xls 文件)
    猜你喜欢
    • 1970-01-01
    • 2012-01-12
    • 1970-01-01
    • 1970-01-01
    • 2020-06-02
    • 1970-01-01
    • 2013-12-09
    相关资源
    最近更新 更多