2016-05-07 8 views
3

一連の数値を有効な日付に変換する関数をPython 2.7で作成しようとしています。これまでのところ、すべての変換が変換で機能します。ここでTypeError:文字列でなければならず、datetime.datetimeではなくstrptimeを使用する

は、関連するコードです:

import datetime 

def convert_date(x,y,z): 
    orig_date = datetime.datetime(x,y,z) 
    d = datetime.datetime.strptime(str(orig_date), '%Y-%m-%d %H:%M:%S') 
    result = d.strftime('%m-%d-%Y') 
    return orig_date 

a = convert_date(13,11,12) 
print a 

私はこれを実行するたびに、私が手:

Traceback (most recent call last): File "test.py", line 9, in a = convert_date(13,11,12) File "test.py", line 5, in convert_date d = datetime.datetime.strptime(orig_date, '%Y-%m-%d %H:%M:%S')

TypeError: must be string, not datetime.datetime

私はstrptimeは私にdatetime objectを与えるためであることを知っているが、どのように私はこれを取得します働く?

+3

「例外:通過」を取り除き、何が間違っているかを確認します。これはまさに 'except:pass'が決して良い考えではない理由です。あなたが例外を渡すときは、例外を指定すべきです。 – Kos

+0

ありがとうございます。AttributeError: ''module'オブジェクトに属性 'strptime''がありません –

+0

@Kos私の発見した内容で私の質問を更新しました –

答えて

6

将来この問題に遭遇する人にとって、私はこれがどのように機能するかを説明するかもしれません。

はここに私のコードです:

import datetime 

def convert_date(x,y,z): 
    orig_date = datetime.datetime(x,y,z) 
    orig_date = str(orig_date) 
    d = datetime.datetime.strptime(orig_date, '%Y-%m-%d %H:%M:%S') 
    d = d.strftime('%m/%d/%y') 
    return d 

私は投稿する前に私は、エラーメッセージから考え出したはずとして、私はちょうどstrftimeを使用する前に、stringorig_dateを変換する必要がありました。

0

例外が発生しています。 exceptブロックでは、単にpassを実行しています。代わりにprintを実行するか、例外をログに記録すると、何が間違っているかを知ることができます。

例外が発生するため、resultオブジェクトは作成されないため、エラーが発生します。

+0

私の質問が更新されました –

関連する問題