From: Wakou Aoyama Date: 1999-05-24T14:29:06+09:00 Subject: [ruby-dev:6975] Re: date format 青山です。 Mon, May 24, 1999 at 11:07:50AM +0900 において Shugo Maeda さん曰く: > 今までの話の流れ: > 私: strftime("%a, %d %b %Y %X %Z")でRFC1123のフォーマットになる > のを期待するのはまずいのではないか。 > # 理由: %aなどがマニュアルでlocaleに従った名前と定義されているから。 ここに気が付いていなかったのですが、man strftime の方にあったんですね。 で、とりあえず HTTP に関しては asctime も認められているので、こちらなら locale に依存せずに済みそうです。 > > to_rfc1123 はともかく、locale に依存しない何かは必要でしょう。それがな > > ければネットワーク系のもので安心して日付を扱えませんから。 > > それでしたら、私としてはdateformat.rbというのを推します。 何を問題にしているのかをよりわかりやすくする意味も含めて、前田さんのサ ンプルを引用させて頂きます。 class Time RFC822_DAYS = [ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" ] RFC822_MONTHS = [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ] def to_rfc1123 t = clone.gmtime return format("%s, %.2d %s %d %.2d:%.2d:%.2d GMT", RFC822_DAYS[t.wday], t.day, RFC822_MONTHS[t.month-1], t.year, t.hour, t.min, t.sec) end end という事で、strftime の %a や %b では locale によって変化するので、ネッ トワーク系のものを組む時には、このように週や月の表示を用意してやる必要 があるという話でした。 そして、これを標準ライブラリとして提供して頂くか、あるいは本来は不適切 かもしれない gmtime というメソッドがあるついでになんらかのメソッドとし て追加してしまうか、あるいは strftime を拡張し、rfc822 の wday を返す %r と rfc822 の month を返す %R とか... -- 青山 和光 Wakou Aoyama