2

私のコードは、外部ソースから time_t を受け取ります。ただし、その time_t は実際には UTC エポック時間に基づいているわけではありません。それに伴い、タイムゾーン文字列 (EDT、PST など) を取得し、このオフセットされたエポックに基づいています。これを真の UTC エポック ベースの time_t に変換する必要があります。

さらに、UTC エポックベースの time_t とタイムゾーンを取得して、オフセットされた time_t を作成して、反対方向に進むことができる必要がありますが、この状況では、EDT/PST のようなタイムゾーンを使用する代わりに) など、 "America/New York" のような Unix スタイルのタイムゾーンの説明であり、夏時間を考慮して正しいタイムゾーンに変換する必要があるため、オフセットされた time_t と正しい記述子 (EDT、EST) の両方をアルゴリズムから取得する必要があります。

一時的に tzset() を変更し、分割された時間、time_t、および timeval の間の変換の組み合わせを変更することで、これを実現できると確信していますが、これを行うと、常に頭が痛くなり、明らかな何かが欠けているように感じます。 . これを行うためのコードまたはsudoコード、または少なくとも適切なアプローチを推奨できる人はいますか?

4

2 に答える 2

1

time_tは秒単位なのでtime_t、タイムゾーンがオフセットされる時間数の 3600 倍だけ値をオフセットするだけです。オフセットが明確に特定されている限り (つまり、US/Eastern または EST5EDT などの代わりに EST または EDT)、これは非常に単純であり、エラーが発生する可能性はありません。

于 2010-07-25T14:50:33.000 に答える
0

これらの関数のいずれかが役立ちますか? localtime()、gmtime() など。

于 2010-07-25T14:17:29.140 に答える