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
parametresi tarafından 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 .
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, 12:00 gece yarısı, 1 Ocak 1601 M.S. (C.E.) tarihinden bu yana geçen 100 nanosaniyelik aralıkların sayısını temsil eden 64 bitlik bir değerdir Eşgüdümlü Evrensel Saat (UTC). Windows, bir uygulama bir dosya oluşturduğunda, dosyaya eriştiğinde veya dosyaya yazdığında kaydetmek için bir dosya süresi kullanır.
parametresi, fileTime 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 yöntemi, 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 oluşuyorsa. Örneğin, ABD Doğu Saat diliminde saat 12:30 olan bir DateTime değer seri hale getirilir 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 mevcut olmayan bir zaman aralığıdır. Aşağıdaki örnekte, bu aralık 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ğerinin IsInvalidTime(DateTime) yöntemine 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 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