DateTime.FromFileTime(Int64) Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mengonversi waktu file Windows yang ditentukan ke waktu lokal yang setara.
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
Parameter
- fileTime
- Int64
Waktu file Windows yang dinyatakan dalam tanda centang.
Mengembalikan
Objek yang mewakili waktu lokal yang setara dengan tanggal dan waktu yang diwakili oleh fileTime
parameter .
Pengecualian
fileTime
kurang dari 0 atau mewakili waktu yang lebih besar dari DateTime.MaxValue.
Contoh
Contoh berikut menunjukkan FromFileTime metode .
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
Keterangan
Waktu file Windows adalah nilai 64-bit yang menunjukkan jumlah interval 100-nanodetik yang telah berlalu sejak 12:00 tengah malam, 1 Januari 1601 A.D. (C.E.) Waktu Universal Terkoordinasi (UTC). Windows menggunakan waktu file untuk merekam ketika aplikasi membuat, mengakses, atau menulis ke file.
Parameter fileTime
menentukan waktu file yang dinyatakan dalam tick 100-nanodetik.
Dimulai dengan .NET Framework versi 2.0, nilai yang dikembalikan adalah yang DateTime propertinya Kind adalah DateTimeKind.Local.
Catatan Bagi Pemanggil
Biasanya, FromFileTime(Int64) metode memulihkan DateTime nilai yang disimpan oleh ToFileTime() metode . Namun, kedua nilai tersebut mungkin berbeda dalam kondisi berikut:
Jika serialisasi dan deserialisasi DateTime nilai terjadi di zona waktu yang berbeda. Misalnya, jika DateTime nilai dengan waktu 12:30 P.M. di zona Waktu Timur AS diserialisasikan, dan kemudian dideserialisasi di zona Waktu Pasifik AS, nilai asli 12:30 P.M. disesuaikan menjadi 9:30 A.M. untuk mencerminkan perbedaan antara dua zona waktu.
DateTime Jika nilai yang diserialisasikan mewakili waktu yang tidak valid di zona waktu lokal. Dalam hal ini, ToFileTime() metode menyesuaikan nilai yang dipulihkan DateTime sehingga mewakili waktu yang valid di zona waktu lokal.
Misalnya, transisi dari waktu standar ke waktu musim panas terjadi di zona Waktu Pasifik AS pada 14 Maret 2010, pukul 02.00 WIB, ketika waktu maju satu jam, menjadi 03:00 A.M. Interval jam ini adalah waktu yang tidak valid, yaitu, interval waktu yang tidak ada di zona waktu ini. Contoh berikut menunjukkan bahwa ketika waktu yang termasuk dalam rentang ini dikonversi ke nilai bilangan bulat panjang dengan ToFileTime() metode dan kemudian dipulihkan oleh FromFileTime(Int64) metode , nilai asli disesuaikan untuk menjadi waktu yang valid. Anda dapat menentukan apakah nilai tanggal dan waktu tertentu mungkin tunduk pada modifikasi dengan meneruskannya ke IsInvalidTime(DateTime) metode , seperti yang diilustrasikan contoh.
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