我正在使用api,它使用兩個__time32_t對象將遊標打開到數據庫,指定要查詢的開始和結束時間。__time32_t時間精度?
__time32_t是否具有亞秒(毫秒)的時間精度? MSDN有點不清楚。
的time32_t對象我這樣處理:
currentET-=.1;
哪我希望給我currentET減去10毫秒的時間裏面,但它是所有減去一整秒,因爲如果我這樣做:
currentET-=1;
我怎樣才能得到這個精度回到time32_t對象?
我正在使用api,它使用兩個__time32_t對象將遊標打開到數據庫,指定要查詢的開始和結束時間。__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);
}
這怎麼可以用來接受一個__time32_t對象? – mattk 2011-04-15 13:08:50
@mattk你不能以所需的精度使用'__time32_t'(打開這個修正),'_timeb'是我能看到的唯一方法。你應該能夠用現有的'__time32_t'對象代替我使用的'time_t rawtime'。在這種情況下,您還需要將'_localtime32'替換爲'localtime'。 另請參閱:http://msdn.microsoft.com/en-us/library/95e68951%28VS.80%29.aspx – Dennis 2011-04-15 14:29:36
@mattk - 您應該接受答案。 – Dennis 2011-05-05 09:47:00