おお…なるほど…?という実装。あんまり明記されていないので言い切れない感じのタイトル。
環境
マシンA
$ ruby -v ruby 2.6.2p47 (2019-03-13 revision 67232) [x86_64-linux] $ date 2019年 4月 10日 水曜日 06:39:32 UTC
マシンB
$ ruby -v ruby 2.3.7p456 (2018-03-28 revision 63024) [universal.x86_64-darwin18] $ date 2019年 4月10日 水曜日 15時40分24秒 JST
仕様
mktime(sec, min, hour, mday, mon, year, wday, yday, isdst, zone) -> Time 引数で指定した地方時の Time オブジェクトを返します。
引数の順序は Time#to_a と全く同じです。 引数 wday, yday, zone に指定した値は無視されます。 引数に nil を指定した場合の値はその引数がとり得る最小の値です。
[PARAM] sec: 秒を 0 から 60 までの整数か文字列で指定します。(60はうるう秒) [PARAM] min: 分を 0 から 59 までの整数か文字列で指定します。 [PARAM] hour: 時を 0 から 23 までの整数か文字列で指定します。 [PARAM] mday: 日を 1 から 31 までの整数か文字列で指定します。 [PARAM] mon: 1(1月)から 12(12月)の範囲の整数か文字列で指定します。 英語の月名("Jan", "Feb", ... などの省略名。文字の大小は無視)も指定できます。 [PARAM] year: 年を整数か文字列で指定します。例えば 1998 年に対して 1998 を指定します。 [PARAM] wday: 無視されます。 [PARAM] yday: 無視されます。 [PARAM] isdst: 指定した日時が夏時間(Daylight Saving Time)なら true を指定します。 そうでないなら、false を指定します。 [PARAM] zone: 無視されます。
zoneは指定されても「無視されます。」
確認
マシンA
mktime_time = Time.mktime(1,2,3,4,1,1500,1,1,1,"zone") => 1500-01-04 03:02:01 +0000 mktime_time.zone => "UTC"
マシンB
mktime_time = Time.mktime(1,2,3,4,1,1500,1,1,1,"zone") => 1500-01-04 03:02:01 +0900 mktime_time.zone => "JST"
無視というのはマシンに依存するという意だった様子。