1

なぜ

o.create_order.strftime("%d %B %Y")

次の場合は何も返しません

time.strftime("%d %B %Y")

日付「2013 年 2 月 10 日」を返します???

o.create_order は、postgresql によるタイムスタンプです。openErp の販売注文 - その他の情報タブに表示されるように、「30/11/2012 09:38:34」が含まれています。データベースにクエリを実行すると、「2012-11-30 08:38:34.272」として格納されます。したがって、「2012 年 11 月 30 日」が表示されることを期待しますが、代わりに何も表示されません。構文を誤解していますか?

これをpython 3.3からテストしました:

>>> d1=datetime.datetime.today()
>>> print(d1.strftime("%d %B %Y"))
10 february 2013 

OpenOffice Writer で動作させるにはどうすればよいですか?

ところで、「February」ではなく「February」を取得するにはどうすればよいですか?

4

2 に答える 2

1

o.create_order内部的にデータベース列がタイムスタンプであっても、datetime オブジェクトではなく文字列を返すためです。OpenERP ORM は、ISO 8601 形式の文字列を返します。

formatLangRML レポートで使用できるメソッドを使用するか、 python モジュールdatetimeを使用してオブジェクトを作成する必要があります。datetime

これを試して:

datetime.strftime('%d %B %Y', o.create_order')
于 2013-02-10T20:56:22.540 に答える
0

o.create_order文字列を返すからです。したがって、最初に文字列の日付を日時形式に変換する必要があります。次に、文字列として必要な任意の形式に変換できます。

これを試して:

#文字列を日時形式に変換します。 dt1 = datetime.strptime(o.create_order,"%Y-%m-%d %H:%M:%S")

#日時を指定された形式に変換し、文字列を返します。 dt2 = datetime.strftime(dt,"%d %B %Y")

これで問題が解決することを願っています。

于 2013-02-11T04:31:41.277 に答える