__time32_t时间精度?

时间:2011-04-15 12:42:06

标签: c++ windows time crt

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

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

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

currentET-=.1;

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

currentET-=1;

如何将此精度恢复到time32_t对象?

2 个答案:

答案 0 :(得分:5)

__time32_t只是一个整体类型 - 除了积分之外没有任何特定的分辨率。 典型函数 __time32_t可以使用1秒的分辨率。

答案 1 :(得分: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);
}