在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)中将日期时间字符串转换为日期时间