C言語でdatetimeをunixタイムスタンプに変換するにはどうすればいいですか? 質問する

C言語でdatetimeをunixタイムスタンプに変換するにはどうすればいいですか? 質問する

シナリオは次のとおりです。libexif を使用して、日付時刻を「YYYY-MM-DD HH:MM:SS」形式で取得します。保存コストを最小限に抑えるために、日付時刻を 64 ビットまたは 32 ビットのみのコストがかかる UNIX タイムスタンプなどに変換します。C で明示的な方法はありますか?

ベストアンサー1

組み合わせて試してみるのもいいでしょうstrptimeそしてmktime

struct tm tm;
time_t epoch;
if ( strptime(timestamp, "%Y-%m-%d %H:%M:%S", &tm) != NULL )
  epoch = mktime(&tm);
else
  // badness

おすすめ記事