1

我正在使用一个 api,它使用两个 __time32_t 对象打开数据库的游标,指定查询的开始和结束时间。

__time32_t 是否具有亚秒(毫秒)时间精度?MSDN有点不清楚。

我拥有的 time32_t 对象是这样做的:

currentET-=.1;

我希望给我 currentET 内的时间减去 10 毫秒,但它所做的只是减去一整秒,就好像我这样做了:

currentET-=1;

我怎样才能将这种精度恢复到 time32_t 对象中?

4

2 回答 2

6

__time32_t只是一个整数类型 - 除了整数之外,它没有任何特定的分辨率。但是,使用的典型函数 __time32_t确实具有 1 秒的分辨率。

于 2011-04-15T12:45:19.897 回答
0

这是一个生成亚秒级精确时间输出的示例。原谅使用 TCHAR 宏...旧代码库。

void getCurrTimeString(TCHAR* mytime)
{
    _timeb myTime;
    struct tm * timeinfo;

    _ftime64_s( &myTime );
    time_t rawtime = myTime.time;
    unsigned short myMillis = myTime.millitm;
    timeinfo = localtime ( &rawtime );
    _stprintf(mytime,_T("%d-%02d-%02dT%02d:%02d:%02d.%03d"),
        (1900+timeinfo->tm_year),
        (timeinfo->tm_mon+1),
        timeinfo->tm_mday,
        timeinfo->tm_hour,
        timeinfo->tm_min,
        timeinfo->tm_sec,
        myMillis);
}
于 2011-04-15T12:54:49.530 回答