다음을 통해 공유


DateTime.ToFileTime 메서드

정의

현재 DateTime 개체의 값을 Windows 파일 시간으로 변환합니다.

public:
 long ToFileTime();
public long ToFileTime ();
member this.ToFileTime : unit -> int64
Public Function ToFileTime () As Long

반환

Int64

Windows 파일 시간으로 표시되는 현재 DateTime 개체의 값입니다.

예외

결과 파일 시간이 서기 1601년 1월 1일 12시 자정(UTC) 이전의 날짜 및 시간을 나타냅니다.

예제

다음 예제는 ToFileTime 메서드.

int main()
{
   System::Console::WriteLine( "Enter the file path:" );
   String^ filePath = System::Console::ReadLine();
   if ( System::IO::File::Exists( filePath ) )
   {
      System::DateTime fileCreationDateTime = System::IO::File::GetCreationTime( filePath );
      __int64 fileCreationFileTime = fileCreationDateTime.ToFileTime();
      System::Console::WriteLine( "{0} in file time is {1}.", fileCreationDateTime, fileCreationFileTime );
   }
   else
   {
      System::Console::WriteLine( "{0} is an invalid file", filePath );
   }
}
open System.IO

printfn "Enter the file path:"
let filePath = stdin.ReadLine()

if File.Exists filePath then
    let fileCreationDateTime =
        File.GetCreationTime filePath

    let fileCreationFileTime = fileCreationDateTime.ToFileTime()

    printfn $"{fileCreationDateTime} in file time is {fileCreationFileTime}."

else
    printfn $"{filePath} is an invalid file"
static void Main(string[] args)
{
    System.Console.WriteLine("Enter the file path:");
    string filePath = System.Console.ReadLine();

    if (System.IO.File.Exists(filePath)) {
        System.DateTime fileCreationDateTime =
            System.IO.File.GetCreationTime(filePath);

        long fileCreationFileTime = fileCreationDateTime.ToFileTime();

        System.Console.WriteLine("{0} in file time is {1}.",
                                 fileCreationDateTime,
                                 fileCreationFileTime);
    }
    else {
        System.Console.WriteLine("{0} is an invalid file", filePath);
    }
}
Public Shared Sub Main()

   System.Console.WriteLine("Enter the file path:")
   Dim filePath As String
   filePath = System.Console.ReadLine()

   If System.IO.File.Exists(filePath) Then
      Dim fileCreationDateTime As System.DateTime
      fileCreationDateTime = System.IO.File.GetCreationTime(filePath)

      Dim fileCreationFileTime As Long
      fileCreationFileTime = fileCreationDateTime.ToFileTime()

      System.Console.WriteLine("{0} in file time is {1}.", _
                               fileCreationDateTime, _
                               fileCreationFileTime)
   Else
      System.Console.WriteLine("{0} is an invalid file", filePath)
   End If
End Sub

설명

Windows 파일 시간은 서기 1601년 1월 1일 자정 12:00 이후 경과된 100나노초 간격의 수를 나타내는 64비트 값입니다. (C.E.) UTC(협정 세계시). Windows 파일 시간을 사용 하 여 애플리케이션 액세스를 만들거나 파일을 쓸 때 기록.

이 메서드는 ToFileTime 이 속성을 사용하여 Kind 현재 DateTime 개체가 현지 시간, UTC 시간 또는 현지 시간으로 처리되는 지정되지 않은 시간인지 여부를 확인합니다.

호출자 참고

일반적으로 메서드는 FromFileTime(Int64) 메서드에서 저장 ToFileTime()DateTime 값을 복원합니다. 그러나 다음 조건에서는 두 값이 다를 수 있습니다.

  • 값의 직렬화 및 역직렬화가 DateTime 다른 표준 시간대에서 발생하는 경우 예를 들어 시간이 오후 12시 30분인 값인 경우 DateTime 입니다. 미국 동부 표준 시간대에서 직렬화된 다음, 원래 값인 오후 12시 30분인 미국 태평양 표준 시간대에서 역직렬화됩니다. 오전 9시 30분으로 조정됩니다. 두 표준 시간대 간의 차이를 반영합니다.

  • serialize된 값이 현지 표준 시간대의 잘못된 시간을 나타내는 경우 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

적용 대상

추가 정보