python3 datetime遇到问题

时间:2019-03-28 22:59:22

标签: python-3.x

我正在尝试将美国日期格式转换为欧盟日期格式。这是作业的一部分,导师给了我们一个测试文件以检查我们的答案。

我能够打印正确的日期,但是测试中出现错误。

这就是我所拥有的:

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周了,仍然是个新手。

1 个答案:

答案 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'