我要使用c
为Visual Studio(最好是1970
和VS
都为GCC
之前的日期创建一个unix时间戳。时间戳记应从日期部分创建。据我所知,Visual Studio不支持1970
之前的时间,无论它们是32
还是64 bit
...
struct tm s_time = {0};
s_time.tm_year = 1940-1900;
s_time.tm_mon = 7 - 1;
s_time.tm_mday = 4;
time_t unix_time = mktime(&s_time);
答案 0 :(得分:0)
我想出的解决方案如下:
#include <windows.h>
#define WINDOWS_TICK 10000000
#define SEC_TO_UNIX_EPOCH 11644473600LL
int64_t date_to_int(SYSTEMTIME *s){
FILETIME f;
SystemTimeToFileTime( s, &f );
uint64_t temp_result;
temp_result = (((uint64_t) f.dwHighDateTime) << 32) + f.dwLowDateTime;
return (int64_t) ((temp_result/ WINDOWS_TICK) - SEC_TO_UNIX_EPOCH);
}