DateTime.FromFileTime(Int64) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Belirtilen Windows dosya süresini eşdeğer bir yerel saate dönüştürür.
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
Parametreler
- fileTime
- Int64
Onay işaretleriyle ifade edilen bir Windows dosya süresi.
Döndürülenler
parametresiyle temsil edilen tarih ve saatin yerel saat eşdeğerini fileTime
temsil eden nesne.
Özel durumlar
fileTime
0'dan küçük veya DateTime.MaxValue değerinden büyük bir saati temsil eder.
Örnekler
Aşağıdaki örnekte yöntemi gösterilmektedir 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
Açıklamalar
Windows dosya süresi, 1 Ocak 1601 M.S. (C.E.) 12:00 gece yarısından bu yana geçen 100 nanosaniyelik aralık sayısını temsil eden 64 bitlik bir değerdir. Eşgüdümlü Evrensel Saat (UTC). Windows, bir uygulamanın bir dosyayı oluşturduğu, ona eriştiği veya yazdığı zamanları kaydetmek için bir dosya zamanı kullanır.
fileTime
parametresi, 100 nanosaniyelik değerlerle ifade edilen bir dosya süresini belirtir.
.NET Framework sürüm 2.0'dan başlayarak, dönüş değeri özelliği olan Kind bir DateTime değeridirDateTimeKind.Local.
Arayanlara Notlar
Normalde, FromFileTime(Int64) yöntemi tarafından ToFileTime() kaydedilen bir DateTime değeri geri yükler. Ancak, iki değer aşağıdaki koşullar altında farklılık gösterebilir:
Değerin seri hale getirilmesi ve seri durumdan DateTime çıkarılması farklı saat dilimlerinde gerçekleşiyorsa. Örneğin, ABD Doğu Saat diliminde saat 12:30 olan bir DateTime değer seri hale getirilirse ve ardından ABD Pasifik Saat diliminde seri durumdan çıkarılırsa, iki saat dilimi arasındaki farkı yansıtacak şekilde 12:30'un özgün değeri 09:30'a ayarlanır.
DateTime Seri hale getirilen değer yerel saat diliminde geçersiz bir saati temsil ediyorsa. Bu durumda yöntemi, ToFileTime() geri yüklenen DateTime değeri yerel saat diliminde geçerli bir saati temsil eden şekilde ayarlar.
Örneğin, standart saatten yaz saati saatine geçiş, 14 Mart 2010'da saat 02:00'de, saat bir saat ilerlediğinde, 03:00'e kadar ABD Pasifik Saat diliminde gerçekleşir. Bu saat aralığı geçersiz bir saat, yani bu saat diliminde bulunmayan bir zaman aralığı. Aşağıdaki örnekte, bu aralığın içinde kalan bir süre yöntemiyle ToFileTime() uzun bir tamsayı değerine dönüştürüldüğünde ve yöntemi tarafından FromFileTime(Int64) geri yüklendiğinde, özgün değerin geçerli bir saat olacak şekilde ayarlandığı gösterilmektedir. Örnekte gösterildiği gibi belirli bir tarih ve saat değerini yönteme IsInvalidTime(DateTime) geçirerek değişikliğe tabi olup olmayacağını belirleyebilirsiniz.
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