2011-08-11 8 views
2

私はPythonには新しく、datetime形式に出てくる文字列の日付を変換するスクリプトを書いています。私の問題は、datetimeオブジェクトを操作のための文字列に戻すことができないということです。私は例えば2011-08-10 14:50:10という日付を持っています。日付と時刻の間にTと最後にZを追加するだけです。残念ながら、私のアプリケーションはPython 2.3を使用しているので、私はそれを受け入れるだけです。次のようにPythonの操作のために日付を文字列に変換する

私のコードは次のとおりです。

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

こんにちはクレイトンさん、スタックオーバーフローへようこそ。私は "実用的な"例を投稿することをお勧めします(例えば、 'document.Get'への呼び出しを戻り値に置き換えてください)。 – MattH

答えて

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へのリンクです。

+0

フィードバックのおかげで、私は本当にそれを感謝する私の文字列はこのように見える "金、08 Aug 2011 14:15:10 -0400" 私は "-0400"を切り刻んで残りの私はこの形式に変換した文字列 "2011-08-08 14:15:21"私はここから変換する必要があります。これは2011年8月8日14時50分10秒です。私はそれを分割しようとすると必要 – Clayton

8
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' 

を行いますそれが文字列である間に文字を追加します。

+0

本当に助けてくれた皆さんに感謝します。 @unubtu私がしなければならなかったすべての仕事は、私がして働いたisoformatを指定することでした!おかげでミル – Clayton

関連する問題