私のコードは、外部ソースから 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コード、または少なくとも適切なアプローチを推奨できる人はいますか?