P.46 03-02 CGIHTTPServer を使う のつづきのつづき
datetimeモジュール を使って現在時刻を取得し、文字列フォーマット機能 を使って表示しました。
年以外の数字が1桁で表示されたり、2桁で表示されたりするのが気持ちわるかったので、全て2桁で統一したいと思いました。変換フラグとやらを使うことで何とかなりそうです。
一つの変換指定子は 2 またはそれ以上の文字を含み、その構成要素は 以下からなりますが、示した順に出現しなければなりません:
http://www.python.jp/doc/2.4/lib/typesseq-strings.html
(略)
3.変換フラグ (オプション)。一部の変換型の結果に影響します。
変換フラグ文字を以下に示します:
http://www.python.jp/doc/2.4/lib/typesseq-strings.html
フラグ 意味 # 値の変換に (下で定義されている) ``別の形式'' を使います。 0 数値型に対してゼロによるパディングを行います。 - 変換された値を左寄せにします ("0" と同時に与えた 場合、"0" を上書きします) 。 (スペース) 符号付きの変換で正の数の場合、前に一つスペースを空けます (そうでない場合は空文字になります) 。 + 変換の先頭に符号文字 ("+" または "-") を付けます("スペース" フラグを上書きします) 。
正直よくわからないものの、例示されているコードと同様に「0」(数値型に対してゼロによるパディングを行います。
)を使ってみたところ、思惑通り2桁で表示されているようです。とりあえず由とします。
html_body = """ <html><body> %d/%02d/%02d %02d:%02d:%02d </body></html>"""
- 出力例(修正前)
- 2008/1/14 22:56:1
- 出力例(修正後)
- 2008/01/14 22:57:01