Information
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

DateTime.FromFileTime Method

Updated: January 2010

Converts the specified Windows file time to an equivalent local time.

Namespace:  System
Assembly:  mscorlib (in mscorlib.dll)

public static DateTime FromFileTime(
	long fileTime
)

Parameters

fileTime
Type: System.Int64

A Windows file time expressed in ticks.

Return Value

Type: System.DateTime
A DateTime object that represents a local time equivalent to the date and time represented by the fileTime parameter.

ExceptionCondition
ArgumentOutOfRangeException

fileTime is less than 0 or represents a time greater than MaxValue.

A Windows file time is a 64-bit value that represents the number of 100-nanosecond intervals that have elapsed since 12:00 midnight, January 1, 1601 A.D. (C.E.) Coordinated Universal Time (UTC). Windows uses a file time to record when an application creates, accesses, or writes to a file.

The fileTime parameter specifies a file time expressed in 100-nanosecond ticks.

Starting with the .NET Framework version 2.0, the return value is a DateTime whose Kind property is Local.

Notes to Callers:

Ordinarily, the FromFileTime method restores a DateTime value that was saved by the ToFileTime method. However, the two values may differ under the following conditions:

  • If the serialization and deserialization of the DateTime value occur in different time zones. For example, if a DateTime value with a time of 12:30 P.M. in the U.S. Eastern Time zone is serialized, and then deserialized in the U.S. Pacific Time zone, the original value of 12:30 P.M. is adjusted to 9:30 A.M. to reflect the difference between the two time zones.

  • If the DateTime value that is serialized represents an invalid time in the local time zone. In this case, the ToFileTime method adjusts the restored DateTime value so that it represents a valid time in the local time zone.

    For example, the transition from standard time to daylight time occurs in the U.S. Pacific Time zone on March 14, 2010, at 2:00 A.M., when the time advances by one hour, to 3:00 A.M. This hour interval is an invalid time, that is, a time interval that does not exist in this time zone. The following example shows that when a time that falls within this range is converted to a long integer value by the ToFileTime method and is then restored by the FromFileTime method, the original value is adjusted to become a valid time. You can determine whether a particular date and time value may be subject to modification by passing it to the TimeZoneInfo.IsInvalidTime method, as the example illustrates.

    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
    

The following example demonstrates the FromFileTime method.

		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;
			}
		}

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC, Xbox 360, Zune

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Supported in: 3.5, 2.0, 1.0

XNA Framework

Supported in: 3.0, 2.0, 1.0

Date

History

Reason

January 2010

Added the Notes for Callers section.

Content bug fix.

Community Additions

Show:
© 2014 Microsoft