From: Yukihiro Matsumoto Date: 2009-04-28T01:42:42+09:00 Subject: [ruby-dev:38348] Re: Time with arbitrary offset まつもと ゆきひろです In message "Re: [ruby-dev:38341] Re: Time with arbitrary offset" on Mon, 27 Apr 2009 12:56:58 +0900, Tanaka Akira writes: |では、 |Time.new(year, mon, day, hour, min, sec, utc_offset) |ならどうでしょうか? | |現在の Time.new (というか Time#initialize) は引数をとらない |ので、非互換性を起こさずに拡張することができます。 こっちには賛成です。 |あと、Date クラスが AD/BC を勘案するというのはよく意味がわか |りません。少なくとも、紀元前1年であるところの西暦0年はそのま |ま通るようです。 私もよくは分かってないのですが、天文とかで使われる(らしい)ユ リウス暦に対してCivil暦なんじゃないかと推測します。いずれに しても、Timeクラスとは無縁の概念ですね。 |> さらにgetlocalメソッドの振る舞いもよくわかりませんでした。同 |> じ時間で時差の違うオブジェクトを返すってこと? それもちょっ |> と名前から予想される挙動とは違うかもしれません。 | |time.getlocal は同じ時刻で地方時のオブジェクトを返すので、 |time.getlocal("+09:00") などと指定すれば、同じ時刻で指定した |時差のオブジェクトを返すのはそれなりに自然な拡張だと思ってい |ます。 |こうでないとすると、どういう予想をすると思ったんですか? Timeクラスの既存の部分は、UNIXが提示していたモデル、つまり UTCか地方時のいずれかというモデルに強く影響を受けていますし、 使う人(この場合は私)もそのモデルになれきっています。既存の getlocalは地方時を返すわけですが、そこで引数を渡したら、UTCで も(古い意味での)地方時でもないものを返すと言うのは、ちょっと 抵抗があります。「予想される挙動うんぬん」は勘違いによるもの だったので忘れてください。 要するに、新たに導入されたものがUTCでも地方時でもない「オフセッ トが指定された時刻」ととらえるか、地方時に「オフセット」とい う新しい属性が増えたととらえるか、という点なんでしょうか。田 中さんは後者の立場のようですが、strftimeを始めとして茨の道の ような気がします。time関係の関数をすべて再実装しなければなら ないような気がするのですが、ある程度はもう再実装してるわけだ し実は手間はそれほどでもないのかな。 まつもと ゆきひろ /:|)