python - Python 3.7:将具有不同时区的字符串转换为日期
问题描述
我正在尝试在 Python 中将字符串转换为日期格式。
我正在使用以下语句
datetime_obj = datetime.datetime.strptime("Sun Aug 19 16:24:31 PDT 2018", "%a %b %d %H:%M:%S %Z %Y")
但是,我收到一个错误-
ValueError:时间数据“2018 年 8 月 19 日星期日 16:24:31 PDT”与格式“%a %b %d %H:%M:%S %Z %Y”不匹配
如果我从日期字符串和格式字符串中删除时区,代码就完美了。这让我相信这个问题与时区有关,但我不确定应该采取什么行动。我在东部时区,字符串中的时区在太平洋时区。
感谢您对此的任何帮助。
解决方案
如this answer中所述,您可以为此使用python-dateutil:
>>> from dateutil import parser
>>> datetime_obj = parser.parse("Sun Aug 19 16:24:31 PDT 2018")
datetime.datetime(2018, 8, 19, 16, 24, 31)
标准datetime 模块在解析时区时表现得非常奇怪,因为我看到阅读这个与类似问题相关的问题的答案。
推荐阅读
- android - 通过命令行启动我的虚拟 Android 设备
- java - 带有新行和连接的 JEditorPane
- php - JWT decode() 必须是数组错误类型
- ios - 致命错误:从 tableview rxswift 中删除单元格时索引超出范围
- elasticsearch - 如何在 Elasticsearch 中声明嵌套字段的映射以允许存储不同的类型?
- python - 无法删除错误值的 ValueError [已关闭:已解决问题]
- python - 如何计算自上次事件==1 以来的天数?
- angular - 如何根据布尔值更改图像,其中布尔值存储在数据库中,图像存储在角度文件中
- r - 如何在 R 中输出固定距离值的单词的所有可能偏差?
- node.js - 在满足条件时取消所有量角器测试