CFileTime
類別
這個類別提供方法來管理與檔案相關聯的日期和時間值。
語法
class CFileTime : public FILETIME
成員
公用建構函式
名稱 | 描述 |
---|---|
CFileTime::CFileTime |
建構函式。 |
公用方法
名稱 | 描述 |
---|---|
CFileTime::GetCurrentTime |
呼叫這個靜態函式,擷取 CFileTime 代表目前系統日期和時間的物件。 |
CFileTime::GetTime |
呼叫這個方法,從物件擷 CFileTime 取時間。 |
CFileTime::LocalToUTC |
呼叫此方法,根據國際標準時間 (UTC) 將本機檔案時間轉換成檔案時間。 |
CFileTime::SetTime |
呼叫這個方法,以設定 物件所儲存的 CFileTime 日期和時間。 |
CFileTime::UTCToLocal |
呼叫此方法,根據國際標準時間 (UTC) 將時間轉換成本機檔案時間。 |
公用運算子
名稱 | 描述 |
---|---|
CFileTime::operator - |
這個運算子可用來對 CFileTime 或 CFileTimeSpan 對象執行減法。 |
CFileTime::operator != |
這個運算子會比較兩個 CFileTime 物件是否不相等。 |
CFileTime::operator + |
此運算子用在 CFileTimeSpan 物件上執行加法。 |
CFileTime::operator += |
此運算子用在 CFileTimeSpan 物件上執行加法並指派結果給目前物件。 |
CFileTime::operator < |
此運算子比較兩個 CFileTime 物件來判斷何者較小。 |
CFileTime::operator <= |
此運算子比較兩個 CFileTime 物件來判斷是否相等或何者較小。 |
CFileTime::operator = |
指派運算子。 |
CFileTime::operator -= |
這個運算符可用來對 CFileTimeSpan 物件執行減法,並將結果指派給目前的物件。 |
CFileTime::operator == |
此運算子比較兩個 CFileTime 物件是否相等。 |
CFileTime::operator > |
此運算子比較兩個 CFileTime 物件來判斷何者較大。 |
CFileTime::operator >= |
此運算子比較兩個 CFileTime 物件來判斷是否相等或何者較大。 |
公用常數
名稱 | 描述 |
---|---|
CFileTime::Day |
靜態數據成員,儲存構成一天的 100 奈秒間隔數目。 |
CFileTime::Hour |
儲存 100 奈秒間隔數目的靜態數據成員,最多一小時。 |
CFileTime::Millisecond |
靜態數據成員,儲存 100 奈秒間隔的數目,最多一毫秒。 |
CFileTime::Minute |
靜態數據成員,儲存構成一分鐘的 100 奈秒間隔數目。 |
CFileTime::Second |
靜態數據成員,儲存構成一秒的 100 奈秒間隔數目。 |
CFileTime::Week |
靜態數據成員,儲存構成一周的 100 奈秒間隔數目。 |
備註
這個類別提供方法來管理與建立、存取和修改檔案相關聯的日期和時間值。 這個類別的方法和數據經常與處理相對時間值的物件搭配 CFileTimeSpan
使用。
日期和時間值會儲存為64位值,代表自1601年1月1日起的100奈秒間隔數目。 此格式為國際標準時間 (UTC) 格式。
提供下列靜態 const 成員變數來簡化計算:
成員變數 | 100 奈秒間隔的數目 |
---|---|
Millisecond | 10,000 |
第二個 | 毫秒 * 1,000 |
Minute | Second * 60 |
Hour | 分鐘 * 60 |
Day | 小時 * 24 |
週 | Day * 7 |
注意
並非所有文件系統都可以記錄建立和上次存取時間,並非所有文件系統都以相同方式記錄它們。 例如,在 Windows NT FAT 檔系統上,建立時間的解析度為 10 毫秒,寫入時間的解析度為 2 秒,而存取時間的解析度為 1 天(存取日期)。 在NTFS上,存取時間的解析度為1小時。 此外,FAT 會以當地時間記錄磁碟上的時間,但NTFS會以UTC記錄磁碟上的時間。 如需詳細資訊,請參閱 檔案時間。
繼承階層
需求
標頭: atltime.h
CFileTime::CFileTime
建構函式。
CFileTime() throw();
CFileTime(const FILETIME& ft) throw();
CFileTime(ULONGLONG nTime) throw();
參數
ft
FILETIME
結構。
nTime
以 64 位值表示的日期和時間。
備註
CFileTime
物件可以使用結構中的現有日期和時間FILETIME
來建立,或以64位值表示(以本機或國際標準時間 (UTC) 時間格式表示。 默認建構函式會將時間設定為 0。
CFileTime::Day
靜態數據成員,儲存構成一天的 100 奈秒間隔數目。
static const ULONGLONG Day = Hour* 24;
範例
請參閱 CFileTime::Millisecond
的範例。
CFileTime::GetCurrentTime
呼叫這個靜態函式,擷取 CFileTime
代表目前系統日期和時間的物件。
static CFileTime GetCurrentTime() throw();
傳回值
以國際標準時間 (UTC) 格式傳回目前的系統日期和時間。
範例
// Retrieve the current time
CFileTime myFT;
myFT = CFileTime::GetCurrentTime();
CFileTime::GetTime
呼叫這個方法,從物件擷 CFileTime
取時間。
ULONGLONG GetTime() const throw();
傳回值
以 64 位數位傳回日期和時間,此數位可能採用本機或國際標準時間 (UTC) 格式。
CFileTime::Hour
儲存 100 奈秒間隔數目的靜態數據成員,最多一小時。
static const ULONGLONG Hour = Minute* 60;
範例
請參閱 CFileTime::Millisecond
的範例。
CFileTime::LocalToUTC
呼叫此方法,根據國際標準時間 (UTC) 將本機檔案時間轉換成檔案時間。
CFileTime LocalToUTC() const throw();
傳回值
CFileTime
傳回物件,其中包含UTC格式的時間。
範例
請參閱 CFileTime::UTCToLocal
的範例。
CFileTime::Millisecond
靜態數據成員,儲存 100 奈秒間隔的數目,最多一毫秒。
static const ULONGLONG Millisecond = 10000;
範例
// Calculate the difference between two times
CFileTime myFT1, myFT2;
CFileTimeSpan myFTS;
// Get the first time
myFT1 = CFileTime::GetCurrentTime();
// Pause for a moment
UINT randVal;
rand_s(&randVal);
Sleep(randVal % 10000);
// Get the second time
myFT2 = CFileTime::GetCurrentTime();
// Calculate the time difference
myFTS = myFT2 - myFT1;
// Measure the difference
if (myFTS.GetTimeSpan() < CFileTime::Minute)
printf_s("Less than a minute passed\n");
else
printf_s("A minute or more passed\n");
if (myFTS.GetTimeSpan() < CFileTime::Second)
printf_s("Less than a second passed\n");
else
printf_s("A second or more passed\n");
if (myFTS.GetTimeSpan() < CFileTime::Millisecond)
printf_s("Less than a millisecond passed\n");
else
printf_s("A millisecond or more passed\n");
CFileTime::Minute
靜態數據成員,儲存構成一分鐘的 100 奈秒間隔數目。
static const ULONGLONG Minute = Second* 60;
範例
請參閱 CFileTime::Millisecond
的範例。
CFileTime::operator -
這個運算子可用來對 CFileTime
或 CFileTimeSpan
對象執行減法。
CFileTime operator-(CFileTimeSpan span) const throw();
CFileTimeSpan operator-(CFileTime ft) const throw();
參數
span
CFileTimeSpan
物件。
ft
CFileTime
物件。
傳回值
CFileTime
傳回 物件或 物件,代表兩個 CFileTimeSpan
對象之間的時間差異結果。
CFileTime::operator !=
這個運算子會比較兩個 CFileTime
物件是否不相等。
bool operator!=(CFileTime ft) const throw();
參數
ft
要比較的 CFileTime
物件。
傳回值
如果比較的項目不等於 CFileTime
物件,則傳TRUE
回 ,否則FALSE
傳回 。
CFileTime::operator +
此運算子用在 CFileTimeSpan
物件上執行加法。
CFileTime operator+(CFileTimeSpan span) const throw();
參數
span
CFileTimeSpan
物件。
傳回值
CFileTime
傳回 物件,表示原始時間的結果加上相對時間。
CFileTime::operator +=
此運算子用在 CFileTimeSpan
物件上執行加法並指派結果給目前物件。
CFileTime& operator+=(CFileTimeSpan span) throw();
參數
span
CFileTimeSpan
物件。
傳回值
會傳回更新 CFileTime
的物件,代表原始時間的結果加上相對時間。
CFileTime::operator <
此運算子比較兩個 CFileTime
物件來判斷何者較小。
bool operator<(CFileTime ft) const throw();
參數
ft
要比較的 CFileTime
物件。
傳回值
TRUE
如果第一個物件小於第二個物件,則傳回 ,FALSE
否則傳回 。
範例
// Test for one time less than another
// Declare the CFileType objects
CFileTime myFT1, myFT2;
// Obtain the first time value
myFT1 = CFileTime::GetCurrentTime();
// Pause for a moment...
Sleep(1000);
// Obtain the second time value
myFT2 = CFileTime::GetCurrentTime();
// Perform the comparison
if (myFT1 < myFT2)
_tprintf_s(_T("Time is going in the correct direction.\n"));
else
_tprintf_s(_T("Oh dear. Time is going backwards.\n"));
CFileTime::operator <>=
此運算子比較兩個 CFileTime
物件來判斷是否相等或何者較小。
bool operator<=(CFileTime ft) const throw();
參數
ft
要比較的 CFileTime
物件。
傳回值
如果第一個物件小於(時間較早)或等於第二個物件,則傳 TRUE
回 ,否則 FALSE
為 。
CFileTime::operator =
指派運算子。
CFileTime& operator=(const FILETIME& ft) throw();
參數
ft
CFileTime
物件,包含新的時間和日期。
傳回值
傳回更新 CFileTime
的物件。
CFileTime::operator -=
這個運算符可用來對 CFileTimeSpan
物件執行減法,並將結果指派給目前的物件。
CFileTime& operator-=(CFileTimeSpan span) throw();
參數
span
CFileTimeSpan
物件,包含要減去的相對時間。
傳回值
傳回更新 CFileTime
的物件。
CFileTime::operator ==
此運算子比較兩個 CFileTime
物件是否相等。
bool operator==(CFileTime ft) const throw();
參數
ft
要 CFileTime
比較的物件。
傳回值
如果物件相等,則傳 TRUE
回 ,否則 FALSE
傳回 。
CFileTime::operator >
此運算子比較兩個 CFileTime
物件來判斷何者較大。
bool operator>(CFileTime ft) const throw();
參數
ft
要比較的 CFileTime
物件。
傳回值
TRUE
如果第一個物件大於第二個物件,則傳回 ,否則FALSE
為 。
CFileTime::operator >=
此運算子比較兩個 CFileTime
物件來判斷是否相等或何者較大。
bool operator>=(CFileTime ft) const throw();
參數
ft
要比較的 CFileTime
物件。
傳回值
如果第一個物件大於(晚於時間)或等於第二個物件,則傳 TRUE
回 ,否則 FALSE
為 。
CFileTime::Second
靜態數據成員,儲存構成一天的 100 奈秒間隔數目。
static const ULONGLONG Second = Millisecond* 1000;
範例
請參閱 CFileTime::Millisecond
的範例。
CFileTime::SetTime
呼叫這個方法,以設定 物件所儲存的 CFileTime
日期和時間。
void SetTime(ULONGLONG nTime) throw();
參數
nTime
代表日期和時間的 64 位值,格式為本機或國際標準時間 (UTC) 格式。
CFileTime::UTCToLocal
呼叫此方法,根據國際標準時間 (UTC) 將時間轉換成本機檔案時間。
CFileTime UTCToLocal() const throw();
傳回值
CFileTime
傳回 物件,其中包含本機檔案時間格式的時間。
範例
// Convert a UTC time to local file time format
CFileTime myUTC_FT, myL_FT;
// Get system time (in UTC format)
myUTC_FT = CFileTime::GetCurrentTime();
// Convert to local file time
myL_FT = myUTC_FT.UTCToLocal();
CFileTime::Week
靜態數據成員,儲存構成一周的 100 奈秒間隔數目。
static const ULONGLONG Week = Day* 7;
範例
請參閱 CFileTime::Millisecond
的範例。