DateTime.FromFileTime(Int64) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
지정한 Windows 파일 시간을 해당 현지 시간으로 변환합니다.
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
매개 변수
- fileTime
- Int64
틱으로 표현된 Windows 파일 시간입니다.
반환
fileTime
매개 변수가 나타내는 날짜와 시간에 해당하는 현지 시간을 나타내는 개체입니다.
예외
fileTime
가 0보다 작거나 DateTime.MaxValue보다 큰 시간을 나타냅니다.
예제
다음 예제는 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
설명
Windows 파일 시간은 1601년 1월 1일 자정(C.E.) 12:00 자정 이후 경과된 100나노초 간격의 수를 나타내는 64비트 값입니다. UTC(협정 세계시). Windows 파일 시간을 사용 하 여 애플리케이션 액세스를 만들거나 파일을 쓸 때 기록.
매개 변수는 fileTime
100나노초 틱으로 표현되는 파일 시간을 지정합니다.
.NET Framework 버전 2.0부터 반환 값은 속성이 인 DateTimeKind 입니다DateTimeKind.Local.
호출자 참고
일반적으로 메서드는 FromFileTime(Int64) 메서드에서 저장 ToFileTime() 한 DateTime 값을 복원합니다. 그러나 다음 조건에 따라 두 값이 다를 수 있습니다.
값의 직렬화 및 역직렬화가 DateTime 서로 다른 표준 시간대에서 발생하는 경우 예를 들어 미국 동부 표준 시간대의 오후 12시 30분 값이 직렬화된 다음 미국 태평양 표준 시간대에서 역직렬화되는 경우 DateTime 원래 값인 오후 12시 30분은 두 표준 시간대의 차이를 반영하도록 오전 9시 30분으로 조정됩니다.
DateTime 직렬화된 값이 현지 표준 시간대의 잘못된 시간을 나타내는 경우 이 경우 메서드는 ToFileTime() 로컬 표준 시간대의 유효한 시간을 나타내도록 복원된 DateTime 값을 조정합니다.
예를 들어 표준시에서 일광 절약 시간제로의 전환은 2010년 3월 14일 오전 2:00에 미국 태평양 표준 시간대에서 발생하며, 시간이 1시간에서 오전 3:00까지 진행됩니다. 이 시간 간격은 잘못된 시간, 즉 이 표준 시간대에 존재하지 않는 시간 간격입니다. 다음 예제에서는 이 범위 내에 있는 시간이 메서드에 의해 ToFileTime() 긴 정수 값으로 변환된 다음 메서드에 의해 FromFileTime(Int64) 복원될 때 원래 값이 유효한 시간이 되도록 조정되는 것을 보여줍니다. 예제와 같이 특정 날짜 및 시간 값을 메서드에 전달 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
적용 대상
추가 정보
.NET