将日期转换为字符串以便在python中进行操作

时间:2011-08-11 09:30:04

标签: python datetime

我是python的新手,我编写了一个脚本,将进入的字符串日期转换为datetime格式。我的问题是无法将datetime对象转换回字符串进行操作。我有一个日期,例如2011-08-10 14:50:10,我需要在日期和时间之间添加T,最后添加Z。不幸的是我使用python 2.3作为我的应用程序只会接受。

我的代码如下:

fromValue= ''
fromValue = document.Get(self._generic3)
fromValue = fromValue[:fromValue.rindex(" ")]
fromValue = datetime.datetime.fromtimestamp(time.mktime(time.strptime(fromValue,"%a, %d %b %Y %H:%M:%S")))

3 个答案:

答案 0 :(得分:8)

toValue = fromValue.strftime("%Y-%m-%dT %H:%M:%SZ")

这应该可以正常工作。 {2.3}上提供了datetime.strftime

如果可能的话,你最好升级到至少 Python 2.5。 Python 2.3多年来甚至都没有收到安全补丁。

编辑:此外,您不需要在Python中初始化或声明变量; fromValue= ''对您的计划没有任何影响。

编辑2:在评论中,您似乎已经说过您已经使用了几乎正确格式的字符串:

"2011-08-08 14:15:21"

所以只做

'T'.join("2011-08-08 14:15:21".split()) + 'Z'

如果你想在字母串的时候添加字母。

答案 1 :(得分:3)

答案 2 :(得分:3)

您似乎正在尝试以ISO-8601格式设置日期时间格式。 为此,请使用isoformat方法。

import datetime as dt 
try:
    import email.utils as eu
except ImportError:
    import email.Utils as eu  # for Python 2.3

date_string="Fri, 08 Aug 2011 14:15:10 -0400"
ttuple=eu.parsedate(date_string)
date=dt.datetime(*ttuple[:6])
print(date.isoformat()+'Z')

产量

2011-08-08T14:15:10Z

以下是Python2.3文档中isoformatparsedate的链接。