python将字符串转换为datetime
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python将字符串转换为datetime,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2153字,纯文字阅读大概需要4分钟。
内容图文
我有一个循环,我尝试处理数据集,其中一个操作是将普通字符串转换为日期时间.一切都很好,除了有时发生一个奇怪的事情……这就是我所知道的
>总是有完全相同的参数进入函数
>那些参数始终是相同的类型
>我第一次运行它,它总是会受到影响
>当它到达appx循环中的第二个元素时80%抛出和值错误(时间数据与格式不匹配)
>但是在我再次运行之后,一切都还可以,并且它会在下一次运行中被卡住……
因为我的功能很大而且有很多东西在讨价还价我决定为你提供一些我在这里写的saple代码,只是为了澄清:
data = ['January 20 1999', 'March 4 2010', 'June 11 1819']
dformat = '%B %d %Y'
for item in data:
out = datetime.datetime.strptime(item, dformat)
print out
虽然这显然适用于我的程序,但它没有…我已经尝试了我想出的所有内容但尚未成功,因此我很高兴有任何想法,你提供谢谢
顺便说一句:我总是看到这样的错误
ValueError: time data did not match format: data=March 4 2010 fmt=%B %d %Y
解决方法:
您可能设置了不同的区域设置. %B是使用英语的语言环境中的March,但在其他语言环境中它将失败.
例如:
>>> import locale
>>> locale.setlocale(locale.LC_ALL, 'sv_SE.utf8')
'sv_SE.utf8'
>>> import datetime
>>>
>>> data = ['January 20 1999', 'March 4 2010', 'June 11 1819']
>>> for item in data:
... print datetime.datetime.strptime(item, '%B %d %Y')
...
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
File "/usr/lib/python2.6/_strptime.py", line 325, in _strptime
(data_string, format))
ValueError: time data 'January 20 1999' does not match format '%B %d %Y'
在这里你看到即使格式匹配,它声称它没有.那是因为月份名称不匹配.将其更改为瑞典语区域设置名称,它再次起作用:
>>> import locale
>>> locale.setlocale(locale.LC_ALL, 'sv_SE.utf8')
'sv_SE.utf8'
>>> import datetime
>>>
>>> data = ['Januari 20 1999', 'Mars 4 2010', 'Juni 11 1819']
>>> for item in data:
... print datetime.datetime.strptime(item, '%B %d %Y')
...
1999-01-20 00:00:00
2010-03-04 00:00:00
1819-06-11 00:00:00
(请注意,上述语言环境’sv_SE.utf8’可能不适合您,因为您必须安装该特定语言环境.要查看Unix计算机上安装的语言环境,请从命令行运行以下命令:
$locale -a
C
en_AG
en_AU.utf8
en_BW.utf8
en_CA.utf8
en_DK.utf8
en_GB.utf8
en_HK.utf8
en_IE.utf8
en_IN
en_NG
en_NZ.utf8
en_PH.utf8
en_SG.utf8
en_US.utf8
en_ZA.utf8
en_ZW.utf8
POSIX
sv_FI.utf8
sv_SE.utf8
)
内容总结
以上是互联网集市为您收集整理的python将字符串转换为datetime全部内容,希望文章能够帮你解决python将字符串转换为datetime所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。