【问题标题】:Xlxswriter - Change Date format from str to dateXlsxwriter - 将日期格式从字符串更改为日期
【发布时间】:2016-08-26 18:24:41
【问题描述】:

我在使用 Xlsxwriter 创建的数据框中更改日期列的日期格式时遇到问题。当前格式是 3/31/2016 12:00:00 AM,我认为 python 正在读取日期并为其添加时间。我希望格式简单地为 dd/mm/yyyy 与所有 A 列的知道时间相关联。

这是我的代码:

date_format= workbook.add_format({'num_format': 'mmm d yyyy'})
date_time= dt.datetime.strftime("%m/%d/%Y")
worksheet.write_datetime(0,0, date_time, date_format)

我得到的错误信息是:TypeError:描述符“strftime”需要一个“datetime.date”对象但收到一个“str”

【问题讨论】:

    标签: python datetime xlsxwriter


    【解决方案1】:

    datetime.strftime 用于将日期时间转换为字符串

    你没有给它一个日期时间对象来转换。

    from datetime import datetime
    today = datetime.today()   # this returns a datetime object
    today.strftime("%m/%d/%Y") # this returns a string
    datetime.strftime(today, "%m/%d/%Y") # alternative way to call it
    

    但是,您实际上需要将日期时间对象传递给worksheet.write_datetime

    所以在我的例子中是这样的

    today = datetime.today()
    date_format= workbook.add_format({'num_format': 'mmm d yyyy'})
    worksheet.write_datetime(0, 0, today, date_format)
    

    要从字符串中解析日期,请使用 date time.strptime

    dateobj = date time.strptime(datestr)
    

    【讨论】:

    • 我要转换的日期时间是我数据框中的第一列。它目前的格式如下:4/30/1982 12:00:00 AM 。我给它转换什么对象?我不想使用今天的日期。我尝试了以下但收到错误: date2= df.datetime.strftime("%m/%d/%Y") format7= workbook.add_format({'num_format': 'mmm d yyyy'}) worksheet.write_datetime( 0,0, date2, format7)
    猜你喜欢
    • 2022-07-04
    • 2021-05-07
    • 1970-01-01
    • 2016-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-19
    相关资源
    最近更新 更多