我正在使用一个api,它使用两个__time32_t对象向数据库打开游标,指定查询的开始和结束时间。
__time32_t是否具有亚秒(毫秒)时间精度? MSDN有点不清楚。
我所拥有的time32_t对象是这样的:
currentET-=.1;
我希望在currentET里面给我的时间减去10毫秒,但它所做的只是减去一整秒,好像我这样做了:
currentET-=1;
如何将此精度恢复到time32_t对象?
答案 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);
}