首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >解析并从python的时间格式中提取值

解析并从python的时间格式中提取值
EN

Stack Overflow用户
提问于 2018-03-11 16:54:47
回答 3查看 436关注 0票数 0

我正在尝试从我的时间数据2018-03-11 13:15:31.734874+01:00中解析和提取值。

我使用strptime()来使用%Y %m %d %H:%M:%S.%f %Z格式进行此操作,但我得到了以下错误:

代码语言:javascript
复制
ValueError: time data '2018-03-11 13:15:31.734874+01:00' does not match format '%Y %m %d %H:%M:%S.%f %Z'

另外,我不知道如何处理时间数据中的+1:00。有人能帮忙吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-03-11 17:19:50

这里有两个问题需要解决。

首先是格式字符串。应该是%Y-%m-%d %H:%M:%S.%f%z来匹配精确的日期分隔符和时区序列(没有空格)。

来自strftime和strptime行为:

%z (小写) UTC在表单+HHMM或-HHMM中偏移(如果对象是朴素的,则为空字符串)。(空),+0000,-0400,+1030

第二个是时区偏移量'+01:00‘中的冒号(:)。可以使用子字符串: s:-3+s-2:或字符串替代。

最后的答案如下。

代码语言:javascript
复制
from datetime import datetime
s = '2018-03-11 13:15:31.734874+01:00'
datetime.strptime(s[:-3]+s[-2:], '%Y-%m-%d %H:%M:%S.%f%z')
票数 0
EN

Stack Overflow用户

发布于 2018-03-11 17:11:38

%Y %m %d应更改为%Y-%m-%d以与时间字符串匹配。此外,您还需要从要与:一起使用的输入中删除最后一个新的%z

下面是您应该做的事情:

代码语言:javascript
复制
import datetime
s = '2018-03-11 13:15:31.734874+01:00'
print(datetime.datetime.strptime(''.join(s.rsplit(':', 1)), '%Y-%m-%d %H:%M:%S.%f%z'))

# 2018-03-11 13:15:31.734874+01:00
票数 0
EN

Stack Overflow用户

发布于 2018-03-11 17:15:41

一开始:

%Y %m %d将与2018-03-11不匹配。您需要调整它以适应时间字符串!%Y-%m-%d应该可以工作。

第二:

如果您在python3中,则为时间戳添加了%z。但是时间戳必须没有冒号,例如+0100而不是+01:00。因此,如果您使用python3,这个工作:

代码语言:javascript
复制
>>> time_string = '2018-03-11 13:15:31.734874+01:00'
>>> time_string = ''.join(time_string.rsplit(':', 1))

>>> datetime.datetime.strptime(time_string, '%Y-%m-%d %H:%M:%S.%f%z')
datetime.datetime(2018, 3, 11, 13, 15, 31, 734874, tzinfo=datetime.timezone(datetime.timedelta(0, 3600)))

编辑后的time_string看起来如下所示:

代码语言:javascript
复制
>>> time_string
'2018-03-11 13:15:31.734874+0100'

--如果您在python2中,%z将无法工作,这里您必须使用dateutil模块的解析函数,它是直接的。

代码语言:javascript
复制
>>> from dateutil.parser import parse
>>> parse('2018-03-11 13:15:31.734874+01:00')
datetime.datetime(2018, 3, 11, 13, 15, 31, 734874, tzinfo=tzoffset(None, 3600))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49222571

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档