From: Yukihiro Matsumoto Date: 2008-11-25T07:44:10+09:00 Subject: [ruby-dev:37181] Re: [Bug #786] Time#strftime で %s が負である場合に桁を間違える まつもと ゆきひろです In message "Re: [ruby-dev:37180] Re: [Bug #786] Time#strftime で %s が負である場合に桁を間違える" on Tue, 25 Nov 2008 07:34:19 +0900, Tadayoshi Funaba writes: |> >ruby -e "p Time.at(-1).strftime('[%3s]')" |> |> の結果は、という話だと思うのですが、ここで0を補っちゃうと空 |> 白で補うという指定ができないんじゃないでしょうか。デフォルト |> では空白、%03sは0で補うんじゃないでしょうか。Time.strftimeは |> 現状では空白で補ってます。 | |%e、%k、%l などは空白ですが、あとは大体 0 ですね。%s はどちらにも分類で |きないパターンなのかもしれません。 | |gnu date では 0 で補っています。 | |$ date -d '2001-02-03' +%20s |00000000000981126000 | |空白でも補えます。 | |$ date -d '2001-02-03' +%_20s | 981126000 ああ、なるほど。_を使うんですね。見落としてました。それなら どちらでもよいと思います。0で補いましょうか。 |僕が間違っているのか、glibc は思った以上にいい加減なのか、"%^P" なんか |も大文字になるべきなんじゃないかと思うけど、なってないみたいですね。 Rubyもですね。直しましょう。 |$ ruby18 -e "p Time.mktime(2000,1,1,3).strftime('%10i')" |" %10i" | |このあたりバグじゃないかと思うんですが。 そうですねえ。[ruby-dev:37170]にも関係するのだと思います。 これも直した方がよいでしょう。ちょっと大がかりになりそうです が。