相关疑难解决方法(0)

ISO到datetime对象:'z'是一个错误的指令

我正在尝试将ISO转换为datetime使用以下代码:

dt = datetime.datetime.strptime("2013-07-23T15:10:59.342107+01:00",
                                "%Y-%m-%dT%H:%M:%S.%f%z")
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

'z' is a bad directive in format '%Y-%m-%dT%H:%M:%S.%f%z'
Run Code Online (Sandbox Code Playgroud)

将格式上面的ISO字符串转换为对象的最佳方法是什么datetime?我使用的是Python 2.7.6版.

python datetime iso rfc3339

38
推荐指数
2
解决办法
4万
查看次数

通过电子邮件解析带有时区的日期?

我正在尝试从电子邮件中检索日期.起初它很容易:

message = email.parser.Parser().parse(file)
date = message['Date']
print date
Run Code Online (Sandbox Code Playgroud)

我收到:

'Mon, 16 Nov 2009 13:32:02 +0100'
Run Code Online (Sandbox Code Playgroud)

但我需要一个不错的日期时间对象,所以我使用:

datetime.strptime('Mon, 16 Nov 2009 13:32:02 +0100', '%a, %d %b %Y %H:%M:%S %Z')
Run Code Online (Sandbox Code Playgroud)

提升了ValueError, since %Z isn't format for +0100.但我在文档中找不到适当的时区格式,只有这个%Z区域.有人可以帮助我吗?

python format timezone datetime rfc5322

31
推荐指数
4
解决办法
2万
查看次数

Python时间老化,第2部分:时区

继我之前的问题,Python的时间老化之后,我现在遇到了关于时区的问题,结果发现它并不总是"+0200".因此当strptime尝试解析它时,它会引发异常.

我想过用[:-6]或者其他什么来切断+0200,但有一种真正的方法可以用strptime做到这一点吗?

如果重要的话,我正在使用Python 2.5.2.

>>> from datetime import datetime
>>> fmt = "%a, %d %b %Y %H:%M:%S +0200"
>>> datetime.strptime("Tue, 22 Jul 2008 08:17:41 +0200", fmt)
datetime.datetime(2008, 7, 22, 8, 17, 41)
>>> datetime.strptime("Tue, 22 Jul 2008 08:17:41 +0300", fmt)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.5/_strptime.py", line 330, in strptime
    (data_string, format))
ValueError: time data did not match format:  data=Tue, 22 Jul 2008 08:17:41 +0300  fmt=%a, %d %b %Y %H:%M:%S +0200
Run Code Online (Sandbox Code Playgroud)

python timezone datetime

22
推荐指数
3
解决办法
2万
查看次数

在Python中解析ISO日期时间

可能重复:
在python中将字符串转换为datetime对象

鉴于以下Python

import datetime

>>> a
'2011-05-04 16:20:09 -0700'
>>> datetime.datetime.strptime(a, "%Y-%m-%d %H:%M:%S %z")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.6/_strptime.py", line 317, in _strptime
    (bad_directive, format))
ValueError: 'z' is a bad directive in format '%Y-%m-%d %H:%M:%S %z'
>>> 
Run Code Online (Sandbox Code Playgroud)

我真的不明白%z一个坏指令怎么样.

参考:http: //docs.python.org/library/datetime.html#strftime-strptime-behavior

这是来自hg,它说它是ISO8601格式.

python datetime

10
推荐指数
1
解决办法
3569
查看次数

使用strptime获取datetime对象时的ValueError

我试图将日期字符串转换为datetime对象,如下所示:

dt = datetime.datetime.strptime('2011-07-15 13:00:00+00:00', '%Y-%m-%d %H:%M:%S')
Run Code Online (Sandbox Code Playgroud)

但是,我得到以下错误:

回溯(最近一次调用最后一次):文件"",第1行,文件"/usr/lib/python2.6/_strptime.py",第328行,在_strptime data_string [found.end():]中)ValueError:未转换数据仍为:+00:00

我想我的格式字符串有问题.如何解决?

谢谢

python datetime

8
推荐指数
2
解决办法
3万
查看次数

在Python中,如何将此格式转换为unix时间戳?

Mon Jul 09 09:20:28 +0000 2012
Run Code Online (Sandbox Code Playgroud)

如果我有一个像STRING那样的格式,我怎么能把它变成一个unix时间戳呢?

注意:我从Twitter的API获取此格式:

https://api.twitter.com/1/statuses/user_timeline.json?include_entities=true&include_rts=true&screen_name=twitter

python date

8
推荐指数
2
解决办法
4721
查看次数

使用dateutil.parser以另一种语言解析日期

Dateutil是一个很好的工具,用于以字符串格式解析日期.例如

from dateutil.parser import parse
parse("Tue, 01 Oct 2013 14:26:00 -0300")
Run Code Online (Sandbox Code Playgroud)

回报

datetime.datetime(2013, 10, 1, 14, 26, tzinfo=tzoffset(None, -10800))
Run Code Online (Sandbox Code Playgroud)

然而,

parse("Ter, 01 Out 2013 14:26:00 -0300") # In portuguese
Run Code Online (Sandbox Code Playgroud)

产生此错误:

ValueError: unknown string format
Run Code Online (Sandbox Code Playgroud)

有谁知道如何使dateutil知道语言环境?

python localization date internationalization python-dateutil

7
推荐指数
1
解决办法
4627
查看次数

Python 2.7如何使用格式解析日期2014-05-01 18:10:3​​8-04:00

我正在尝试解析这个日期时间字符串,但还没有成功,我怎么能得到它?

d = '2014-05-01 18:10:38-04:00'
datetime.datetime.strptime(d,'%Y-%m-%d %H:%M:%S-%Z')

ValueError: time data '2014-05-01 18:10:38-04:00' does not match format '%Y-%m-%d %H:%M:%S%Z'
Run Code Online (Sandbox Code Playgroud)

python python-2.7

6
推荐指数
1
解决办法
463
查看次数

Python datetime.strptime,ISO 8601

假设我有以下datetime对象:

>>> dt
datetime.datetime(2015, 5, 13, 18, 5, 55, 320000, tzinfo=datetime.timezone(datetime.timedelta(-1, 61200)))
Run Code Online (Sandbox Code Playgroud)

我可以用ISO 8601格式打印该对象,如下所示:

>>> dt.isoformat()
'2015-05-13T18:05:55.320000-07:00'
Run Code Online (Sandbox Code Playgroud)

在Python 3.4下,如果我删除时区中的冒号,我可以解析ISO 8601字符串的字符串:

>>> import re
>>> ts='2015-05-13T18:05:55.320-07:00'
>>> tf="%Y-%m-%dT%H:%M:%S.%f%z"
>>> tsm=re.sub(r'([+-]\d+):(\d+)$', r'\1\2', '2015-05-13T18:05:55.320-07:00')
>>> tsm
'2015-05-13T18:05:55.320-0700'
>>> datetime.datetime.strptime(tsm, tf)
datetime.datetime(2015, 5, 13, 18, 5, 55, 320000, tzinfo=datetime.timezone(datetime.timedelta(-1, 61200)))
Run Code Online (Sandbox Code Playgroud)

在Python 2.7下,情况更糟,因为它%z似乎没有记录的工作:

>>> tsm='2015-05-13T18:05:55.320-0700'
>>> tf="%Y-%m-%dT%H:%M:%S.%f%z"
>>> datetime.datetime.strptime(tsm, tf)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/_strptime.py", line 317, in _strptime
    (bad_directive, format)) …
Run Code Online (Sandbox Code Playgroud)

python datetime iso python-2.7 python-3.x

6
推荐指数
0
解决办法
79
查看次数

在 Python 中转换“yyyy-MM-dd'T'HH:mm:ss.SSSZ”格式的时间戳

我有一个带有时间戳的日志文件,例如“2012-05-12T13:04:35.347-07:00”。我想将每个时间戳转换为一个数字,以便根据时间按升序对它们进行排序。

我怎样才能在 Python 中做到这一点?在 Java 中,我发现我可以使用这种格式转换时间戳,SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ")但对于 Python 我找不到任何东西。

python timestamp

4
推荐指数
1
解决办法
1万
查看次数

蟒蛇.将字符串转换为datetime会引发ValueError

我有字符串:

import datetime
time = "2016-02-01 19:14:54+02:00"
Run Code Online (Sandbox Code Playgroud)

并尝试将其转换为datetime obj:

result = datetime.datetime.strptime(time, "%Y-%m-%d %H:%M:%S%z")
Run Code Online (Sandbox Code Playgroud)

它抛出异常:

ValueError: time data '2016-02-01 19:14:54+02:00' does not match format '%Y-%m-%d %H:%M:%S%z'
Run Code Online (Sandbox Code Playgroud)

你能帮我解决一下这里有什么问题吗?

python datetime python-3.x

2
推荐指数
1
解决办法
775
查看次数

python使用时区解析日期时间

我试图以下面的格式解析日志文件中的字符串: 2011-06-27 10:29:56+0200

如果我使用datetime.datetime.strptime('%Y-%m-%d %H:%M:%S%z')我会ValueError("'z' is a bad directive in format '%Y-%m-%d %H:%M:%S%z'")被抛出

如何以这种格式解析日期?

python time date

1
推荐指数
1
解决办法
7956
查看次数