我是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")))
答案 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)
fromValue.strftime('%Y-%m-%d T %H:%M:%S Z')
答案 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