なかだです。

At Sun, 17 Oct 1999 06:14:39 +0900,
Kikutani, Makoto <kikutani / Galaxy.net> wrote:
> Timeクラスをながめているんですが、timezoneが数字でなく
> JSTとかEDTになってるとめんどうそうです。

  Time は基本的に mktime(3) を使ってるので、

@time = begin
    save, ENV["TZ"] = ENV["TZ"], timezone
    Time.mktime(y, mo, d, h, mi, sec)
  ensure
    ENV["TZ"] = save
  end

とか。当然スレッド間で競合するので、Time::mktime に timezone 引数
を追加してやって、Time の中で mutex してやった方がいいのかも知れ
ませんが、そもそも途中で ENV["TZ"] を変更しても反映されないシステ
ムもあるかも知れないので、確実性には疑問が残ります。

  確実なのは自分で Timezone の設定ファイルなどを読んで来るという
手ですが、おそらくポータビリティはないでしょうし、そうなると
timezone の対照表を自前で持ったほうが安心かも。

> どうしたもんでしょう?

  Time が、そもそも複数のタイムゾーンの同時使用を考慮していない 
C library をベースにしている以上、スマートな解決策はありえないよ
うな気がします。

-- 
そうだ 強気に ちょっと インチキに☆彡
    中田 "Bugるくらいがちょうどいいかも;-)" 伸悦