Shizuka's Style (Tre)

旧yaplogのShizuka's Style (Duo)から記事ごと引っ越しました。今後ともよろしく!

pythonでdatetimeを0埋めしたくない時の対応。。

2020-05-18 16:44:51 | Python
ある課題で、Pythonでの時刻や時間を0埋めせずに取り出す必要が出たのですが、こちらもはまったので備忘まで記事を残します。

まずは、「Pythonで日付出力の0埋めを取り除くメモ」さんを参考に、「dt.strftime('%Y/%-m/%-d %-H:%-M')」を試したのですが、Linuxでは動いても私のIDE環境(Windows上のSpider)ではエラーになって動きません。

次に「Python datetime 0埋めしない方法(Windows)」さんを参考に、「.lstrip("0")」を試したのですが、これ、0が全てstripされてしまうので、00時とか00分が投入されると空っぽになってしまい、その後の処理が大変です。

そこでふと立ち戻って考えると、そもそも”00”というのはint型にすると0になりますし、”01”も1になるはずでは?と思いつき、
===
time_str = "00:00"
a = time_str.split(":")
print ((str(int(a[0]))) + ":" + (str(int(a[1]))))
===
こんな感じで0埋め無しにしたい時間文字列を一旦、取り込みint型にして、それを更にstr型にするという力業で解決してみました。一応、これでも何とかはなるけど、あまりに力わざだし何だかなぁと思っていたら、、、

===
(2-1)strptimeメソッドで変更する
.strftime('%Y/%#m/%#d')
 └ 例:「today.strftime("%Y/%#m/%#d")」
 └ 「%Y」:西暦 (4桁) の 10進数(※%yは2桁)
 └ 「%#m」:0埋めなし10進数の月(※%Mは分)
 └ 「%#d」:0埋めなし10進数の日にち(%Dはmm/dd/yy)
===
と書かれており、、これで解決することが出来ました。
WindowsとLinuxやMacでは挙動が違うのですね。。。

しかし、、となると、プラットフォーム毎に異なる処理を入れないとならない訳で、全てのOSで共通プログラムにしたいなら、あながち力わざも間違ってなくて、ありなのかもしれません。
それはそれでどうかと思いますが。いすれにしても備忘まで記事を残しておきます。
コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« python numpyでのtolist()は... | トップ | Raspberry PiでBME280を使っ... »
最新の画像もっと見る

コメントを投稿

Python」カテゴリの最新記事