さまざまなユーザーが地球のさまざまな場所にいるアプリがあり (タイムゾーンを知っています)、日付と時刻を入力でき、すべてを UTC で DB に保存する必要があります。
通常、Time 変数をインスタンス化するために、次のことを行っています。
DateTime.new(date.year, date.month, date.day, hours, minutes, 0)
これはすでに UTC ですが、変換はされていません。
その文字列に time_zone (つまり、「Melbourne」) を含む 7 番目のパラメーターを追加すると、オーストラリアの日付として解釈され、UTC に変換された結果の DateTime は 10 時間遅れます。動作します。
ただし、夏時間は考慮されていません。
私が必要とするのは、正確にそれを行うことです (たとえば、日付/時刻のコンポーネントからの DateTime)。(たとえば、オーストラリアの場合)、4 月 9 日に同じ時間/分を使用すると、別のオフセットが得られます。 4 月 5 日を使用した場合よりも UTC に変換した場合。
何か案は?
ありがとう!
ダニエル