DateTime.ToFileTime 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
將目前 DateTime 物件的值轉換成 Windows 檔案時間。
public:
long ToFileTime();
public long ToFileTime ();
member this.ToFileTime : unit -> int64
Public Function ToFileTime () As Long
傳回
以 Windows 檔案時間表示的目前 DateTime 物件的值。
例外狀況
產生的檔案時間會代表西元 1601 年 1 月 1 日午夜 12:00 之前的日期和時間。 UTC。
範例
下列範例會示範 ToFileTime 方法。
int main()
{
System::Console::WriteLine( "Enter the file path:" );
String^ filePath = System::Console::ReadLine();
if ( System::IO::File::Exists( filePath ) )
{
System::DateTime fileCreationDateTime = System::IO::File::GetCreationTime( filePath );
__int64 fileCreationFileTime = fileCreationDateTime.ToFileTime();
System::Console::WriteLine( "{0} in file time is {1}.", fileCreationDateTime, fileCreationFileTime );
}
else
{
System::Console::WriteLine( "{0} is an invalid file", filePath );
}
}
static void Main(string[] args)
{
System.Console.WriteLine("Enter the file path:");
string filePath = System.Console.ReadLine();
if (System.IO.File.Exists(filePath)) {
System.DateTime fileCreationDateTime =
System.IO.File.GetCreationTime(filePath);
long fileCreationFileTime = fileCreationDateTime.ToFileTime();
System.Console.WriteLine("{0} in file time is {1}.",
fileCreationDateTime,
fileCreationFileTime);
}
else {
System.Console.WriteLine("{0} is an invalid file", filePath);
}
}
Public Shared Sub Main()
System.Console.WriteLine("Enter the file path:")
Dim filePath As String
filePath = System.Console.ReadLine()
If System.IO.File.Exists(filePath) Then
Dim fileCreationDateTime As System.DateTime
fileCreationDateTime = System.IO.File.GetCreationTime(filePath)
Dim fileCreationFileTime As Long
fileCreationFileTime = fileCreationDateTime.ToFileTime()
System.Console.WriteLine("{0} in file time is {1}.", _
fileCreationDateTime, _
fileCreationFileTime)
Else
System.Console.WriteLine("{0} is an invalid file", filePath)
End If
End Sub
備註
Windows 的檔案時間是64位的值,代表自西元1601年1月1日午夜起經過12:00 的 100-納秒間隔數 國際標準時間(UTC) 當應用程式建立、存取或寫入至檔案時,Windows 會使用檔案時間來記錄。
ToFileTime方法 Kind 會使用屬性來判斷目前的 DateTime 物件是本地時間、UTC 時間,還是視為當地時間的未指定時間類型。
給呼叫者的注意事項
一般來說, FromFileTime(Int64) 方法 DateTime 會還原方法所儲存的值 ToFileTime() 。 不過,在下列情況下,這兩個值可能會不同:
-如果值的序列化和還原序列化 DateTime 發生在不同的時區中。 例如,如果某個 DateTime 值的時間為 12:30 P.M。 在美國東部時區已序列化,然後在美國太平洋時區還原序列化,12:30 P.M. 的原始值。 已調整為 9:30 A.M。 以反映這兩個時區之間的差異。
-如果 DateTime 序列化的值代表本地時區中的無效時間。 在此情況下, ToFileTime() 方法會調整還原的 DateTime 值,使其代表本地時區中的有效時間。
例如,從標準時間到日光節約時間的轉換會在美國太平洋時區于2010年3月14日上午2:00,當時間前進1小時時,到上午3:00 此小時間隔是不正確時間,也就是此時區中不存在的時間間隔。 下列範例顯示當方法將落在此範圍內的時間轉換為長整數值, ToFileTime() 然後由方法進行還原時,會將 FromFileTime(Int64) 原始值調整為有效的時間。 如範例所示,您可以藉由將特定日期和時間值傳遞給方法,來判斷其是否可能受到修改 IsInvalidTime(DateTime) 。
::: code language = "csharp" source = "~/samples/snippets/csharp/VS_Snippets_CLR_System/system.datetime.fromfiletime/cs/fromfiletime1.cs" id = "Snippet1":::::: code language = "vb" source = "~/samples/snippets/visualbasic/VS_Snippets_CLR_System/system.datetime.fromfiletime/vb/fromfiletime1.vb" id = "Snippet1":::