[#7785] rb2c — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

28 messages 1999/09/02

[#7845] [Q] irb and SizedQueue — keiju@... (Keiju ISHITSUKA)

けいじゅ@日本ラショナルソフトウェアです.

14 messages 1999/09/15

[ruby-dev:7931] Re: [PATCH] strftime "%z", timezone

From: Tadayoshi Funaba <tadf@...>
Date: 1999-09-26 15:24:59 UTC
List: ruby-dev #7931
ふなばです。

At 1999-09-26T19:28:35+0900 (2451447.93652JD),
eban@os.rim.or.jp (WATANABE Hirofumi) wrote:

eban> :|それはそれとしてもともと "%z" なんて strftime には普通ないら
eban> :|しく, これを使うのはまずいか.
eban> :
eban> :ですねえ。互換性に問題があるものを全部取り込んだらきりがない
eban> :ですし。

eban> missing/strftime.c を取り込んでしまうのはちょっと大きい気がするし.
eban> では Time.now から "+0900" を得るにはどうしたらいいんでしょう?

つねに、missing/strftime.c をつかうとなると、locale が気になりますね。

僕は date3 (date2 1.8) で Date.now.zone なんてします (宣伝)。

Date.now.strftime('%FT%T%z')
	=> 1999-09-26T23:35:12+0900

といったこともできますし (タイムゾーンの本質的な問題を解決しているわけ
でないが)。

strftime(3) の %z は非標準ですが、このあいだ Date#strftime を改訂した
ときに、少ししらべたのですが、非標準なものでも、てんで勝手なわけでなく、
それなりに事実上の標準ができあがっているような気がします。以下は、
Date#strftime が受けつける指定子ですが、わりと多くの実装にあります。

    %A, %a, %B, %b, %C, %c, %D, %d, %e, %F, %G, %g, %H, %h, %I,
    %j, %k, %l, %M, %m, %n, %P, %p, %R, %r, %S, %s, %T, %t, %U,
    %u, %V, %v, %W, %w, %X, %x, %Y, %y, %Z, %z, %%, %+

もし、自前でもつなら、上のものもみんな揃えられるといいですね。

ごとけんさのですが、%z は、ISO 8601 および RFC 822 の形式として正しい
ものが要求されていると思われるので、つねに符合つきの 4桁、もしくは、
"Z" になるのだと思います。で、わたなべさんが欲しいのもこれだと思うです。

なかださんのは、閏秒があるとまずいってのがありそう。

ふなば ただよし

In This Thread