DateTime.FromFileTime(Int64) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Converte l'ora specificata di un file di Windows in un'ora locale equivalente.
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
Parametri
- fileTime
- Int64
Ora di un file di Windows espressa in tick.
Restituisce
Oggetto che rappresenta l'ora locale equivalente della data e dell'ora rappresentate dal parametro fileTime
.
Eccezioni
fileTime
è minore di 0 o rappresenta un'ora maggiore di DateTime.MaxValue.
Esempio
Nell'esempio seguente viene illustrato il FromFileTime metodo.
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
Commenti
Un tempo di file di Windows è un valore a 64 bit che rappresenta il numero di intervalli a 100 nanosecondi trascorsi dalle 12:00 mezzanotte, 1 gennaio 1601 A.D. (C.E.) Ora universale coordinata (UTC). Windows usa un'ora di file per registrare quando un'applicazione crea, accede o scrive in un file.
Il fileTime
parametro specifica un tempo di file espresso in 100-nanosecondi tick.
A partire da .NET Framework versione 2.0, il valore restituito è un DateTime oggetto la cui Kind proprietà è DateTimeKind.Local.
Note per i chiamanti
In genere, il FromFileTime(Int64) metodo ripristina un DateTime valore salvato dal ToFileTime() metodo . Tuttavia, i due valori possono variare in base alle condizioni seguenti:
Se la serializzazione e la deserializzazione del DateTime valore si verificano in fusi orari diversi. Ad esempio, se un DateTime valore con un'ora di 12:30 P.M. nel fuso orario degli Stati Uniti orientali viene serializzato e quindi deserializzato nel fuso orario pacifico degli Stati Uniti, il valore originale di 12:30 P.M. viene modificato alle 9:30 A.M. per riflettere la differenza tra i due fusi orari.
Se il DateTime valore serializzato rappresenta un'ora non valida nel fuso orario locale. In questo caso, il ToFileTime() metodo regola il valore ripristinato DateTime in modo che rappresenti un'ora valida nel fuso orario locale.
Ad esempio, la transizione dall'ora solare all'ora legale si verifica nel fuso orario pacifico degli Stati Uniti il 14 marzo 2010, alle 2:00 A.M., quando l'ora passa da un'ora alle 3:00 A.M. Questo intervallo di ora è un'ora non valida, ovvero un intervallo di tempo che non esiste in questo fuso orario. Nell'esempio seguente viene illustrato che quando un intervallo rientra all'interno di questo intervallo viene convertito in un valore intero lungo dal ToFileTime() metodo e viene quindi ripristinato dal FromFileTime(Int64) metodo, il valore originale viene modificato per diventare un tempo valido. È possibile determinare se un determinato valore di data e ora può essere soggetto alla modifica passandolo al metodo, come illustrato nell'esempio IsInvalidTime(DateTime) .
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