0

前回の質問から、tzinfo gem にアクセスする方法がわかりました。しかし、私は自分の目的のためにそれを使用する方法がわかりません。

毎日ブジュンブラに適用されるタイムゾーンと夏時間の組み合わせで、ブルンジのブジュンブラにいる人に毎朝午前 8 時に電子メールを送信する必要があるとします。私の理解では、tzinfo はその情報を「知っている」ということです。ブジュンブラ時間の午前 8 時 (サマータイムを含む) を 1 年中毎日の UTC に変換することはできますか? 私は次のようなことをしたいと思います:

require 'tzinfo'
bz = TZInfo::Timezone.get('Africa/Bujumbura')
#bujumbura_time=????
bujumbura_utctime=tz.local_to_utc(bujumbura_time)

ブジュンブラ時間で午前 8:00 であることを反映するように「bujumbura_time」をエンコードするにはどうすればよいですか?

4

1 に答える 1

2

bujumbura_time特定のタイムゾーンを意識する必要はないと思います。代わりに、タイム ゾーンと組み合わせてUTC に変換できる現地時間を作成します。

require 'tzinfo'
bz = TZInfo::Timezone.get('Africa/Bujumbura')
bujumbura_time = Time.local(2012, 3 ,27, 8, 0, 0)
bujumbura_utctime = bz.local_to_utc(bujumbura_time)

現地時間から UTC への変換は、夏時間が原因で厄介な場合があることに注意してください。時計が進むと、現地時間の 1 時間 (通常) が完全にスキップされ、時計が戻ると、現地時間の一部が 2 回発生します。そのような状況で何が起こりたいかを考え出す必要があります。(local_to_utcドキュメントでは、オプションについて説明しています。)

于 2012-03-27T05:18:33.127 に答える