DateTime.FromFileTime(Int64) 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 zadaný čas souboru systému Windows na ekvivalentní místní čas.
public:
static DateTime FromFileTime(long fileTime);
public static DateTime FromFileTime (long fileTime);
static member FromFileTime : int64 -> DateTime
Public Shared Function FromFileTime (fileTime As Long) As DateTime
Parametry
- fileTime
- Int64
Čas souboru systému Windows vyjádřený v zaškrtávkách.
Návraty
Objekt, který představuje místní časový ekvivalent data a času reprezentovaných parametrem fileTime
.
Výjimky
fileTime
je menší než 0 nebo představuje čas větší než DateTime.MaxValue.
Příklady
Následující příklad ukazuje metodu FromFileTime .
System::TimeSpan FileAge( long fileCreationTime )
{
System::DateTime now = System::DateTime::Now;
try
{
System::DateTime fCreationTime =
System::DateTime::FromFileTime( fileCreationTime );
System::TimeSpan fileAge = now.Subtract( fCreationTime );
return fileAge;
}
catch ( ArgumentOutOfRangeException^ )
{
// fileCreationTime is not valid, so re-throw the exception.
throw;
}
}
open System
let fileAge fileCreationTime =
let now = DateTime.Now
try
let fCreationTime =
DateTime.FromFileTime fileCreationTime
now.Subtract fCreationTime
with :? ArgumentOutOfRangeException ->
// fileCreationTime is not valid, so re-raise the exception.
reraise ()
public System.TimeSpan FileAge(long fileCreationTime) {
System.DateTime now = System.DateTime.Now;
try {
System.DateTime fCreationTime =
System.DateTime.FromFileTime(fileCreationTime);
System.TimeSpan fileAge = now.Subtract(fCreationTime);
return fileAge;
}
catch (ArgumentOutOfRangeException) {
// fileCreationTime is not valid, so re-throw the exception.
throw;
}
}
Public Function FileAge(ByVal fileCreationTime As Long) As System.TimeSpan
Dim now As System.DateTime
now = System.DateTime.Now
Try
Dim fCreationTime As System.DateTime
Dim fAge As System.TimeSpan
fCreationTime = System.DateTime.FromFileTime(fileCreationTime)
fAge = now.Subtract(fCreationTime)
Return fAge
Catch exp As ArgumentOutOfRangeException
' fileCreationTime is not valid, so re-throw the exception.
Throw
End Try
End Function
Poznámky
Čas souboru windows je 64bitová hodnota, která představuje počet 100 nanosekundových intervalů, které uplynuly od 12:00 půlnoci 1. ledna 1601 n. n. Koordinovaný světový čas (UTC) Systém Windows používá k záznamu okamžiku, kdy aplikace vytvoří, přistoupí nebo zapíše do souboru, čas souboru.
Parametr fileTime
určuje čas souboru vyjádřený 100 nanosekundami.
Počínaje rozhraním .NET Framework verze 2.0 je návratová hodnota, DateTime jejíž Kind vlastnost je DateTimeKind.Local.
Poznámky pro volající
Metoda obvykle obnoví hodnotu, FromFileTime(Int64) která byla uložena metodouToFileTime().DateTime 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 v americkém východním časovém pásmu serializována a následně deserializována v americkém tichomořském časovém pásmu, původní hodnota 12:30 se upraví na 9:30, aby odrážela rozdíl mezi dvěma časovými pásmy.
DateTime Pokud hodnota, která je serializována představuje neplatný čas v místním časovém pásmu. V tomto případě metoda upraví obnovenou DateTime hodnotu tak, ToFileTime() aby představovala platný čas v místním časovém pásmu.
Například přechod ze standardního času na letní čas probíhá v americkém tichomořském časovém pásmu 14. března 2010 ve 2:00, kdy se čas posune 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 metodou ToFileTime() a pak je obnoven metodou FromFileTime(Int64) , původní hodnota je upravena tak, aby se stala platným časem. Můžete určit, zda konkrétní hodnota data a času může být změněna tak, že ji IsInvalidTime(DateTime) předáte metodě, jak je znázorněno na 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 AM
open 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 AM
Module 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