преобразование даты в строку для манипуляции в Python - PullRequest
2 голосов
/ 11 августа 2011

Я новичок в 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 ]

8 голосов
/ 11 августа 2011
toValue = fromValue.strftime("%Y-%m-%dT %H:%M:%SZ")

Это должно работать нормально.datetime.strftime был доступен на Python 2.3.

Вам, безусловно, будет лучше перейти на как минимум 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'

Если вы хотите добавить буквы, пока они строки.

3 голосов
/ 11 августа 2011

Похоже, вы пытаетесь отформатировать дату и время в формате 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

Вот ссылка на isoformat и parsedate в документации Python2.3.

3 голосов
/ 11 августа 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...