在python中将日期转换为列表

Posted

技术标签:

【中文标题】在python中将日期转换为列表【英文标题】:converting a date to list in python 【发布时间】:2021-05-19 23:53:05 【问题描述】:

我想将日期转换为列表格式,然后访问其元素。我正在使用的当前代码是 -

 start = str(start)
 start = list(start.split("-"))
 print(start)

其中 start 将是格式为 - MM/YYYY/DD 的日期

但是输出是 -

['0.0019821605550049554']

我不明白我做错了什么

【问题讨论】:

对于start 的什么值,您会得到输出['0.0019821605550049554'] 你的意见是什么? 这能回答你的问题吗? How to get current time in python and break up into year, month, day, hour, minute? 【参考方案1】:

我认为问题在于你可能在字符串之外有/,这给了你一个月除以年除以日,也许检查开始变量是否是一个字符串开头?因为一旦数学完成将其转换为字符串只会转换结果,而不是字符串本身。 看这里:

start = 8/1986/20
start = str(start)
start = list(start.split("-"))
print(start)

当日期没有被引号括起来时,它把它当作一个等式并返回:

#['0.0002014098690835851']

当它在引号中时它有效,但你的拆分不正确

start = '8/1986/20'
start = str(start)
start = list(start.split("-"))
print(start)

它返回

#['8/1986/20']

你想要的是

start = '8/1986/20'
start = str(start)
start = list(start.split("/"))
print(start)

返回:

#['8', '1986', '20']

【讨论】:

【参考方案2】:
 start = list(start.split("-"))

这会寻找“-”。如果您的格式有“/”,请使用

    start = list(start.split("/"))

但正如评论中给出的How to get current time in python and break up into year, month, day, hour, minute? 更好

【讨论】:

【参考方案3】:

根据你得到的输出,你的代码必须是这样的 -

    start = 5-2009-30
    start = str(start)
    start = list(start.split("-"))
    print(start)

您的代码正在做的是,它减去 5、2009 和 30。因为您在该变量中给出的值是整数,并且“-”符号表示减法,所以它将数字相除。然后它将答案转换为字符串,然后转换为列表,并打印差异。这就是为什么你得到错误的输出。您可以通过将数据放在引号之间来避免这种情况。转换为字符串意味着,它只是将答案转换为字符串,这就是为什么即使你输入 str() 函数,它也没有给出任何结果

所以你的最终代码应该是 -

start = "5-2009-30"
start = list(start.split("-"))
print(start)

【讨论】:

【参考方案4】:

这是您所要求的简单答案。确保将日期声明为字符串,这样数字就不会相互分割!

start ="5/2009/30"

start = list(start.split("/"))

print(start)

【讨论】:

以上是关于在python中将日期转换为列表的主要内容,如果未能解决你的问题,请参考以下文章

如何在python中将字符串日期转换为日期时间格式? [复制]

在numpy(python)中将日期时间字符串转换为日期时间

如何在python中将字符串转换为日期时间[重复]

如何在 python 中将 1970 年前的日期转换为纪元? [复制]

如何在 Python 中将日期转换为季度?

如何在python中将日期转换为纪元时间[重复]