我正在使用一个 api,它使用两个 __time32_t 对象打开数据库的游标,指定查询的开始和结束时间。
__time32_t 是否具有亚秒(毫秒)时间精度?MSDN有点不清楚。
我拥有的 time32_t 对象是这样做的:
currentET-=.1;
我希望给我 currentET 内的时间减去 10 毫秒,但它所做的只是减去一整秒,就好像我这样做了:
currentET-=1;
我怎样才能将这种精度恢复到 time32_t 对象中?
__time32_t
只是一个整数类型 - 除了整数之外,它没有任何特定的分辨率。但是,使用的典型函数 __time32_t
确实具有 1 秒的分辨率。
这是一个生成亚秒级精确时间输出的示例。原谅使用 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);
}