2016.05.11   |   Python

Pythonで日付出力の0埋めを取り除くメモ

Pythonのdatetimeでstrftimeをした時の0埋めを回避する方法です。

strftimeのドキュメント
http://docs.python.jp/3/library/datetime.html#strftime-and-strptime-behavior
を見てもらえば分かりますが、0埋めを無くして日付や時刻を出力する方法が載ってません。

0を出力してあとから削るというのもスマートじゃないですよね。

0詰めするスマートな方法

見つけた正しい解決策がこちら。

from datetime import datetime
dt = datetime.fromtimestamp(0)
dt.strftime('%Y/%-m/%-d %-H:%-M')

# >>> '1970/1/1 0:0'

このように0埋めされるディレクティブに対し、「-」を付けてあげることで0を詰めて表示できるみたいです。
Cの実装に依存するみたいなので動かない環境もあるかもしれませんが、OSX El CapitanとUbuntu 14のCPythonでは問題なく動きました。

参考

http://stackoverflow.com/questions/9525944/python-datetime-formatting-without-zero-padding