Python openpyxl 获取日期输出格式
Python openpyxl get date output format
我有一个我无法更改的 excel 文件,我在其中使用 openpyxl 获取一些信息,在这种情况下,我有一个具有这种 DATE 格式的单元格 MM/DD/YYYY 我需要 [= 上的输出22=] 为:%d/%m/%Y
我试过这个:
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 和编程方面的新手)
这是你可以申请的is:
from datetime import datetime
ETD = datetime.fromisoformat('2021-10-15 00:00:00'))
print(f"{ETD.day}/{ETD.month}/{ETD.year}")
输出:
15/10/2021
datetime.strptime
抓取一个字符串并将其转换为日期时间对象。你给它的格式告诉它如何解释它正在抓取的字符串。在这种情况下,您告诉它您正在给它一个格式类似于 '%d/%m/%Y'
的字符串,而实际上它看起来是您正在给它一个格式类似于 '%Y-%m-%d %H:%M:%S'
的字符串。这是您应该给它的格式字符串。然后您将拥有一个表示 date/time 的日期时间对象。如果你想要一个你指定格式的新字符串,获取那个日期时间对象并使用 .strftime
方法,将你的格式字符串传递给它,它会输出你想要的字符串:
ETD3 = sheet['F28'].value
ETD2 = str(ETD3)
DT = datetime.strptime(ETD2,'%Y-%m-%d %H:%M:%S')
ETD = DT.strftime('%d/%m/%Y')
我有一个我无法更改的 excel 文件,我在其中使用 openpyxl 获取一些信息,在这种情况下,我有一个具有这种 DATE 格式的单元格 MM/DD/YYYY 我需要 [= 上的输出22=] 为:%d/%m/%Y
我试过这个:
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 和编程方面的新手)
这是你可以申请的is:
from datetime import datetime
ETD = datetime.fromisoformat('2021-10-15 00:00:00'))
print(f"{ETD.day}/{ETD.month}/{ETD.year}")
输出:
15/10/2021
datetime.strptime
抓取一个字符串并将其转换为日期时间对象。你给它的格式告诉它如何解释它正在抓取的字符串。在这种情况下,您告诉它您正在给它一个格式类似于 '%d/%m/%Y'
的字符串,而实际上它看起来是您正在给它一个格式类似于 '%Y-%m-%d %H:%M:%S'
的字符串。这是您应该给它的格式字符串。然后您将拥有一个表示 date/time 的日期时间对象。如果你想要一个你指定格式的新字符串,获取那个日期时间对象并使用 .strftime
方法,将你的格式字符串传递给它,它会输出你想要的字符串:
ETD3 = sheet['F28'].value
ETD2 = str(ETD3)
DT = datetime.strptime(ETD2,'%Y-%m-%d %H:%M:%S')
ETD = DT.strftime('%d/%m/%Y')