DateTime.ToFileTime Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Převede hodnotu aktuálního DateTime objektu na čas souboru systému Windows.
public:
long ToFileTime();
public long ToFileTime();
member this.ToFileTime : unit -> int64
Public Function ToFileTime () As Long
Návraty
Hodnota aktuálního DateTime objektu vyjádřená jako čas souboru systému Windows.
Výjimky
Výsledný čas souboru by představoval datum a čas před 12:00 půlnocí 1. ledna 1601 C.E. UTC.
Příklady
Následující příklad ukazuje metodu ToFileTime .
open System.IO
printfn "Enter the file path:"
let filePath = stdin.ReadLine()
if File.Exists filePath then
let fileCreationDateTime =
File.GetCreationTime filePath
let fileCreationFileTime = fileCreationDateTime.ToFileTime()
printfn $"{fileCreationDateTime} in file time is {fileCreationFileTime}."
else
printfn $"{filePath} is an invalid file"
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
Poznámky
Čas souboru Systému Windows je 64bitová hodnota, která představuje počet intervalů 100 nanosekund, které uplynuly od 12:00 půlnoci, 1. ledna 1601 A.D. (C.E.) Koordinovaný univerzální čas (UTC). Systém Windows používá k zaznamenávání času při vytváření, přístupu nebo zápisu aplikace do souboru.
Metoda ToFileTime používá Kind vlastnost k určení, zda aktuální DateTime objekt je místní čas, čas UTC nebo nespecifikovaný druh času, který je považován za místní čas.
Poznámky pro volající
Metoda obvykle FromFileTime(Int64) obnoví DateTime hodnotu uloženou metodou ToFileTime() . Tyto dvě hodnoty se však mohou lišit za následujících podmínek:
Pokud serializace a deserializace DateTime hodnoty dochází v různých časových pásmech. Pokud DateTime je například hodnota s časem 12:30 p.M. v východním časovém pásmu USA serializována a pak deserializována v americkém časovém pásmu Tichomoří, původní hodnota 12:30 P.M. se upraví na 9:30 A.M. tak, aby odrážela rozdíl mezi těmito dvěma časovými pásmy.
DateTime Pokud hodnota serializovaná představuje neplatný čas v místním časovém pásmu. V tomto případě ToFileTime() metoda upraví obnovenou DateTime hodnotu tak, aby představovala platný čas v místním časovém pásmu.
Například přechod ze standardního času na letní čas nastane v americkém tichomořském časovém pásmu 14. března 2010 v 2:00, kdy čas přejde o hodinu do 3:00. Tento hodinový interval je neplatný čas, tj. časový interval, který v tomto časovém pásmu neexistuje. Následující příklad ukazuje, že když je čas, který spadá do tohoto rozsahu, převeden na dlouhou celočíselnou hodnotu ToFileTime() metodou a pak je obnoven metodou FromFileTime(Int64) , původní hodnota je upravena tak, aby se stala platnou dobou. Můžete zjistit, zda konkrétní hodnota data a času může být předmětem úprav, tím, že ji předáte metodě IsInvalidTime(DateTime), jak je znázorněno v příkladu.
using System; public class Example { public static void Main() { DateTime date1 = new DateTime(2010, 3, 14, 2, 30, 00); Console.WriteLine("Invalid Time: {0}", TimeZoneInfo.Local.IsInvalidTime(date1)); long ft = date1.ToFileTime(); DateTime date2 = DateTime.FromFileTime(ft); Console.WriteLine("{0} -> {1}", date1, date2); } } // The example displays the following output: // Invalid Time: True // 3/14/2010 2:30:00 AM -> 3/14/2010 3:30:00 AMopen System let date1 = DateTime(2010, 3, 14, 2, 30, 00) printfn $"Invalid Time: {TimeZoneInfo.Local.IsInvalidTime date1}" let ft = date1.ToFileTime() let date2 = DateTime.FromFileTime ft printfn $"{date1} -> {date2}" // The example displays the following output: // Invalid Time: True // 3/14/2010 2:30:00 AM -> 3/14/2010 3:30:00 AMModule Example Public Sub Main() Dim date1 As New DateTime(2010, 3, 14, 2, 30, 00) Console.WriteLine("Invalid Time: {0}", TimeZoneInfo.Local.IsInvalidTime(date1)) Dim ft As Long = date1.ToFileTime() Dim date2 As DateTime = DateTime.FromFileTime(ft) Console.WriteLine("{0} -> {1}", date1, date2) End Sub End Module ' The example displays the following output: ' Invalid Time: True ' 3/14/2010 2:30:00 AM -> 3/14/2010 3:30:00 AM