我有一个使用IPDDump创建的Blackberry IPD备份的CSV转储文件.这里的日期/时间字符串看起来像这样(EST澳大利亚时区在哪里):
Tue Jun 22 07:46:22 EST 2010
Run Code Online (Sandbox Code Playgroud)
我需要能够在Python中解析这个日期.起初,我尝试使用strptime()datettime中的函数.
>>> datetime.datetime.strptime('Tue Jun 22 12:10:20 2010 EST', '%a %b %d %H:%M:%S %Y %Z')
Run Code Online (Sandbox Code Playgroud)
但是,由于某种原因,返回的datetime对象似乎没有任何tzinfo关联它.
我在这个页面上读到的显然是datetime.strptime默默地丢弃了tzinfo,但是,我检查了文档,我找不到任何有关此处记录的效果.
我已经能够使用第三方Python库dateutil来解析日期,但是我仍然很好奇我是如何使用内置strptime()错误的?有什么方法可以strptime()很好地与时区玩吗?
我有一个'2009/05/13 19:19:30 -0400'形式的日期字符串.对于尾随时区规范,似乎以前版本的Python可能支持strptime中的%z格式标记,但2.6.x似乎已经删除了它.
将此字符串解析为日期时间对象的正确方法是什么?
给定这个字符串:"Fri, 09 Apr 2010 14:10:50 +0000"如何将其转换为datetime对象?
做了一些阅读后,我觉得这应该有用,但它不...
>>> from datetime import datetime
>>>
>>> str = 'Fri, 09 Apr 2010 14:10:50 +0000'
>>> fmt = '%a, %d %b %Y %H:%M:%S %z'
>>> datetime.strptime(str, fmt)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib64/python2.6/_strptime.py", line 317, in _strptime
(bad_directive, format))
ValueError: 'z' is a bad directive in format '%a, %d %b %Y %H:%M:%S %z'
Run Code Online (Sandbox Code Playgroud)
应该注意的是,这没有问题:
>>> from datetime import datetime
>>>
>>> str …Run Code Online (Sandbox Code Playgroud) 我收到的Twitter消息是在特定日期以下列格式从twitter发送的:
Tue Mar 29 08:11:25 +0000 2011
Run Code Online (Sandbox Code Playgroud)
我想在postgresql中使用djangos DateTimeField字段将这些日期存储在"timestamp with time zone"字段中.当我存储该字符串但是我收到此错误:
ValidationError: [u'Enter a valid date/time in YYYY-MM-DD HH:MM[:ss[.uuuuuu]] format.']
Run Code Online (Sandbox Code Playgroud)
我可以自动将twitter日期类型转换为python日期时间(在我的应用程序的其他地方可以用来保存日期).
我正在尝试从电子邮件中检索日期.起初它很容易:
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
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格式.
我有一个带有时间戳的日志文件,例如“2012-05-12T13:04:35.347-07:00”。我想将每个时间戳转换为一个数字,以便根据时间按升序对它们进行排序。
我怎样才能在 Python 中做到这一点?在 Java 中,我发现我可以使用这种格式转换时间戳,SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ")但对于 Python 我找不到任何东西。
我有一个脚本解析出表示日期和时间的电子邮件标题中的字段.这些字符串的一些示例如下:
Fri, 10 Jun 2011 11:04:17 +0200 (CEST)
Tue, 1 Jun 2011 11:04:17 +0200
Wed, 8 Jul 1992 4:23:11 -0200
Wed, 8 Jul 1992 4:23:11 -0200 EST
Run Code Online (Sandbox Code Playgroud)
在我遇到某些字符串末尾的CEST/EST部分之前,我的工作非常好,只需使用datetime.datetime.strptime如下:
msg['date'] = 'Wed, 8 Jul 1992 4:23:11 -0200'
mail_date = datetime.datetime.strptime(msg['date'][:-6], '%a, %d %b %Y %H:%M:%S')
Run Code Online (Sandbox Code Playgroud)
我试图将正则表达式放在一起以匹配字符串的日期部分,同时在最后排除时区信息,但我遇到了正则表达式的问题(我无法匹配冒号).
使用正则表达式是解析上述所有示例的最佳方法吗?如果是这样,有人可以共享一个与这些例子匹配的正则表达式吗?最后,我希望有一个datetime对象.
我正在尝试将日期字符串转换为年龄.
字符串就像:"星期一,2008年11月17日01:45:32 +0200",我需要知道它已经有多少天了.
我使用以下方式成功转换了日期:
>>> time.strptime("Mon, 17 Nov 2008 01:45:32 +0200","%a, %d %b %Y %H:%M:%S +0200")
(2008, 11, 17, 1, 45, 32, 0, 322, -1)
Run Code Online (Sandbox Code Playgroud)
出于某种原因,%z给了我+0200的错误,但这并不重要.
我可以使用以下时间获取当前时间:
>>> time.localtime()
(2009, 2, 3, 19, 55, 32, 1, 34, 0)
Run Code Online (Sandbox Code Playgroud)
但是如何在不通过列表中的每个项目并手动执行的情况下从另一个中减去一个?
我试图以下面的格式解析日志文件中的字符串: 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'")被抛出
如何以这种格式解析日期?