16

時間、分、日、秒、月、年などを知っている特定の瞬間があるとします。このエポック時間 (1970 年からの秒数) を変換するにはどうすればよいですか?

Boost を使用できないため、Boost ソリューションを提案しないでください。

4

5 に答える 5

31

機能を使用してくださいmktime(3)。例えば:

struct tm t = {0};  // Initalize to all 0's
t.tm_year = 112;  // This is year-1900, so 112 = 2012
t.tm_mon = 8;
t.tm_mday = 15;
t.tm_hour = 21;
t.tm_min = 54;
t.tm_sec = 13;
time_t timeSinceEpoch = mktime(&t);
// Result: 1347764053
于 2012-08-16T01:50:57.527 に答える
6

Linux では、timegm を使用してローカル タイム ゾーンが減算されないようにします。

struct tm tm;

// set tm.tm_year, tm.tm_mon, tm.tm_mday, tm.tm_hour, tm.tm_min and tm.tm_sec

tm.tm_year -= 1900; // year start at 1900
tm.tm_mon--;        // months start at january
TIME_STAMP t = timegm(&tm);
于 2016-01-05T09:26:27.003 に答える
1

mktime()struct tmエポックからの秒数に変換できます。

于 2012-08-16T01:51:10.640 に答える