我正在尝试将美国日期格式转换为欧盟日期格式。这是作业的一部分,导师给了我们一个测试文件以检查我们的答案。
我能够打印正确的日期,但是测试中出现错误。
这就是我所拥有的:
def US_to_EU(date):
df = [date]
f = [datetime.strptime(d, "%m/%d/%y").strftime("%d.%m.%y") for d in df]
return(f)
US_to_EU('3/13/18')
这是我打印结果时得到的:
['13.03.18']
我需要它返回:
'13.03.18'
这是我运行的测试告诉我的:
FAIL: test_US_to_EU (__main__.TestStrings)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/Users/john/Desktop/John's School/Spring 2019/ISTA 130 Srping 2019/HW/HW 5/test_strings.py", line 12, in test_US_to_EU
self.assertEqual('12.3.18', US_to_EU('3/12/18'))
AssertionError: '12.3.18' != None
有人可以帮我吗?我知道这可能是有史以来最基本的事情,但是我现在已经9周了,仍然是个新手。
答案 0 :(得分:0)
也许不用写作:
f = [datetime.strptime(d, "%m/%d/%y").strftime("%d.%m.%y") for d in df]
您应该写:
f = [datetime.strptime(d, "%m/%d/%y").strftime("%d.%m.%y") for d in df][0]
甚至更好的是,不要将字符串用数组包装。因此您的代码将如下所示:
def US_to_EU(date):
f = datetime.strptime(date, "%m/%d/%y").strftime("%d.%m.%y")
return(f)
US_to_EU('3/13/18')
这将返回'13.03.18'
。