C/C++におけるUTC文字列からのUNIXエポック時間の取得における驚くべき困難

2025-01-19
C/C++におけるUTC文字列からのUNIXエポック時間の取得における驚くべき困難

この記事では、C/C++でUTC文字列をUNIXタイムスタンプに変換することの複雑さについて掘り下げています。著者は、様々なCライブラリや言語におけるPOSIX時間処理関数の予期せぬ動作を発見しました。`strptime()`、`mktime()`、`timegm()`関数の使用に焦点を当て、サマータイムとロケールに関する問題点を強調しています。UTC時間には`timegm()`を使用し、ロケール問題を回避するためにC++ストリームを活用するなど、解決策が提示されています。最後に、Howard Hinnantのtzライブラリなど、C++20以降で利用可能な、より堅牢な時間処理ライブラリが推奨されています。

開発