Python の datetime をマイクロ秒コンポーネントなしで文字列に変換する 質問する

Python の datetime をマイクロ秒コンポーネントなしで文字列に変換する 質問する

現在アムステルダム (!) の時間文字列のみを含む Bitbucket API 応答に UTC 時間文字列を追加しています。他の場所で返される UTC 時間文字列との一貫性を保つために、望ましい形式は2011-11-03 11:07:04(に続く です+00:00が、これは関連性がありません) です。

マイクロ秒コンポーネントを持つインスタンスからこのような文字列 (マイクロ秒コンポーネントなし)を作成する最適な方法は何ですか?datetime

>>> import datetime
>>> print unicode(datetime.datetime.now())
2011-11-03 11:13:39.278026

考えられる回答として、私が思いついた最良の選択肢を追加しますが、もっと洗練された解決策があるかもしれません。

編集:実際に現在の時刻を印刷しているわけではないことを述べておきますdatetime.now。簡単な例を示しただけです。したがって、ソリューションでは、受信するインスタンスにマイクロ秒の要素が含まれると想定しないでくださいdatetime

ベストアンサー1

datetime標準形式とは異なる特定の形式でオブジェクトをフォーマットする場合は、その形式を明示的に指定するのが最適です。

>>> import datetime
>>> datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
'2011-11-03 18:21:26'

見るの文書datetime.strftime()指令の説明については、こちらをご覧ください%

Python 3.6 以降では、このisoformat()メソッドは柔軟性が高く、次の形式も生成できます。

datetime.datetime.now().isoformat(sep=" ", timespec="seconds")

おすすめ記事