2012-07-24 55 views
2

我在ISO格式分裂时间戳按小时

[u"2000-01-01T00:00:00+00:00", u"2000-01-01T00:00:00+00:00", ... ]

我试图分裂按小时每串时间戳列表。然而,使用"string".strp(":")显然不会工作,因为too many values to unpack错误(由于几个:),并且"string".strp(":%S")给出值错误more than one value to unpack。 有什么建议吗?

回答

2

iso8601是一个奇妙的,开放源码的Python模块来解析ISO日期时间字符串http://code.google.com/p/pyiso8601/

它把它变成Python的原生datetime类型应该是比较容易的工作。

+0

感谢您的帮助。我会试试这个。 – ehertele 2012-07-24 18:07:33

2

你有两种选择。您可以使用datetime.datetime.strptime为您提供datetime对象,然后只需执行dt.hour,您可能想要执行此操作,具体取决于您对这些对象所做的操作。

或者,如果您想按照原样使用字符串处理,则可以使用str.split(如上所示),但使用可选的第二个参数(即分割的最大次数),所以s.split(":", 1)。或者类似地,str.partition,它基本上会做同样的事情,但不会为没有“:”的事物引发错误。使用这两种方法,您需要先使用切片剥离开始时的事物。

+0

打我吧... – 2012-07-24 15:23:06

+0

我想尝试str.partition而不提高第二个值的错误;你将如何切片来解决这个问题? (我不确定遵循) – ehertele 2012-07-24 16:16:40

+0

'value,_,_ = u“2000-01-01T00:00:00 + 00:00”.partition(“:”)' 'hour = value [-2: ]' – Julian 2012-07-24 16:25:46