首页 > 解决方案 > Python openpyxl获取日期输出格式

问题描述

我有一个无法更改的 excel 文件,我在其中使用 openpyxl 获取一些信息,在这种情况下,我有一个具有此日期格式 MM/DD/YYYY 的单元格,我需要 python 上的输出为:%d/%m/%是的

我试过这个:

ETD3 = sheet['F28'].value
ETD2 = str(ETD3)
ETD = datetime.strptime(ETD2,'%d/%m/%Y')

我收到此错误:

  Traceback (most recent call last):
  File "C:\Users\xxxx\eclipse-workspace\TEst\RunFaster.py", line 102, in <module>
    ETD = datetime.strptime(ETD2,'%d/%m/%Y')
  File "C:\Users\xxxx\AppData\Local\Programs\Python\Python310\lib\_strptime.py", line 568, in _strptime_datetime
    tt, fraction, gmtoff_fraction = _strptime(data_string, format)
  File "C:\Users\xxxx\AppData\Local\Programs\Python\Python310\lib\_strptime.py", line 349, in _strptime
    raise ValueError("time data %r does not match format %r" %
ValueError: time data '2021-10-15 00:00:00' does not match format '%d/%m/%Y'

我怎样才能使它正常工作?(我是python新手,也是编程新手)

标签: pythonopenpyxl

解决方案


datetime.strptime抓取一个字符串并将其转换为日期时间对象。你给它的格式告诉它如何解释它正在抓取的字符串。在这种情况下,您告诉它您正在给它一个格式为 like 的字符串'%d/%m/%Y',而实际上它看起来您正在给它一个格式为 like 的字符串'%Y-%m-%d %H:%M:%S'。这是你应该给它的格式字符串。然后,您将拥有一个代表该日期/时间的日期时间对象。如果您想以您指定的格式获得一个新字符串,请获取该日期时间对象并使用该.strftime方法,将您的格式字符串传递给它,它会以您想要的方式输出字符串:

ETD3 = sheet['F28'].value
ETD2 = str(ETD3)
DT = datetime.strptime(ETD2,'%Y-%m-%d %H:%M:%S')
ETD = DT.strftime('%d/%m/%Y')

推荐阅读