[解決済み] Ruby / Rails - Timeの値を変更せずに、タイムゾーンを変更する。
2022-08-16 12:29:14
質問
あるレコード
foo
を持つデータベースで
:start_time
と
:timezone
属性があります。
は
:start_time
はUTCのTime -です。
2001-01-01 14:20:00
のように、例えば
は
:timezone
は文字列-
America/New_York
のように、例えば
の値を持つ新しいTimeオブジェクトを作りたい。
:start_time
の値を持つ新しい Time オブジェクトを作りたいのですが、そのタイムゾーンは
:timezone
. を読み込ませたくない。
:start_time
を読み込んでから
:timezone
というのは、Railsは賢いので、そのタイムゾーンと一致するようにUTCから時刻を更新するからです。
現在では
t = foo.start_time
=> 2000-01-01 14:20:00 UTC
t.zone
=> "UTC"
t.in_time_zone("America/New_York")
=> Sat, 01 Jan 2000 09:20:00 EST -05:00
その代わりに
=> Sat, 01 Jan 2000 14:20:00 EST -05:00
ie. したいのです。
t
=> 2000-01-01 14:20:00 UTC
t.zone = "America/New_York"
=> "America/New_York"
t
=> 2000-01-01 14:20:00 EST
どのように解決するのですか?
あなたは以下のようなことを望んでいるようです。
ActiveSupport::TimeZone.new('America/New_York').local_to_utc(t)
これは、このローカルタイム(ゾーンを使用)をutcに変換すると言うものです。もし
Time.zone
が設定されている場合は、もちろん
Time.zone.local_to_utc(t)
これはtに添付されたタイムゾーンを使用しません - 変換元のタイムゾーンのローカルであると仮定します。
ここで注意すべきは、夏時間の移行です。指定したローカルな時間が存在しないか、あいまいである可能性があります。
関連
-
[解決済み】bcrypt LoadError: Cannot load such file
-
[解決済み] erbでコメントを追加する最適な方法
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] time(1) の出力における 'real', 'user' および 'sys' はどのような意味ですか?
-
[解決済み] Ruby on Railsのマイグレーションでデータベースのカラムの名前を変更するにはどうすればよいですか?
-
[解決済み] Rubyで配列に値が存在するかどうかを確認する方法
-
[解決済み] Ruby on Railsで現在の絶対URLを取得するにはどうすればよいですか?
-
[解決済み] Ruby on Railsで、DateTime、Timestamp、Time、Dateの違いは何ですか?
-
[解決済み】Railsの認証トークンを理解する
-
[解決済み] RailsとPostgreSQLでタイムゾーンを完全に無視する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】取得中。「プロジェクトのクローンとマイグレート後に、「マイグレーションは保留中です。この問題を解決するには 'bin/rake db:migrate RAILS_ENV=development' を実行してください。
-
[解決済み】Rails。Ruby on Railsの移行でデータベースカラムの名前を変更するにはどうすればよいですか?
-
[解決済み】gemのインストールができない - gemネイティブ拡張の構築に失敗 - そのようなファイルをロードできない -- mkmf (LoadError)
-
[解決済み】Webpacker::Manifest::MissingEntryError【クローズド
-
[解決済み] Railsです。NameError: 初期化されていない定数
-
[解決済み] AWS S3です。アクセスしようとしているバケットは、指定されたエンドポイントを使用してアドレスされている必要があります。
-
[解決済み] Devise Admin Roleの追加【終了しました
-
[解決済み] Rspec が私のモデルクラスを認識しない。初期化されていない定数エラー
-
[解決済み] 構文エラー "構文エラー、予期しない入力終了、keyword_endを期待 (SyntaxError)"
-
[解決済み] Railsコンソール:リロード!モデルファイルの変更が反映されない?考えられる理由は何でしょうか?