DateTime.FromBinary(Int64) 메서드

정의

64비트 이진 값을 deserialize하고 serialize된 원본 DateTime 개체를 다시 만듭니다.Deserializes a 64-bit binary value and recreates an original serialized DateTime object.

public:
 static DateTime FromBinary(long dateData);
public static DateTime FromBinary (long dateData);
static member FromBinary : int64 -> DateTime
Public Shared Function FromBinary (dateData As Long) As DateTime

매개 변수

dateData
Int64

Kind 속성을 2비트 필드에서 인코딩하고 Ticks 속성을 62비트 필드에서 인코딩하는 64비트 부호 있는 정수입니다.A 64-bit signed integer that encodes the Kind property in a 2-bit field and the Ticks property in a 62-bit field.

반환

DateTime 메서드로 serialize된 ToBinary() 개체에 해당하는 개체입니다.An object that is equivalent to the DateTime object that was serialized by the ToBinary() method.

예외

dateDataMinValue보다 작거나 MaxValue보다 큽니다.dateData is less than MinValue or greater than MaxValue.

설명

사용 된 ToBinary 현재 값으로 변환 하는 방법 DateTime 개체를 이진 값입니다.Use the ToBinary method to convert the value of the current DateTime object to a binary value. 이후에 이진 값을 사용 하며 FromBinary 메서드를 다시 원래 DateTime 개체입니다.Subsequently, use the binary value and the FromBinary method to recreate the original DateTime object.

중요

일부 경우에는 DateTime 에서 반환 된 값을 FromBinary 방법은 원본과 동일 DateTime 에 제공 된 값은 ToBinary 메서드.In some cases, the DateTime value returned by the FromBinary method is not identical to the original DateTime value supplied to the ToBinary method. 자세한 내용은 다음 섹션에서는 "현지 시간 조정"을 참조 하세요.For more information, see the next section, "Local Time Adjustment".

현지 시간 조정Local Time Adjustment

현지 표준 시간대를 조정 하는 협정 세계시가 현지 시간으로 표시 됩니다는 DateTime 갖는 Kind 속성 값은 Local합니다.A local time, which is a Coordinated Universal Time adjusted to the local time zone, is represented by a DateTime structure whose Kind property has the value Local. 로컬 복원 하는 경우 DateTime 에 의해 생성 된 이진 표현에서 값을 ToBinary 메서드를는 FromBinary 메서드는 원래 값과 같으면 되지 않도록 다시 만든된 값을 조정할 수.When restoring a local DateTime value from the binary representation that is produced by the ToBinary method, the FromBinary method may adjust the recreated value so that it is not equal to the original value. 이 비동기화는 다음과 같은 경우에 발생할 수 있습니다.This can occur under the following conditions:

  • 경우 로컬 DateTime 개체에서 한 표준 시간대에서 serialize 되는 ToBinary 메서드를에서 다른 표준 시간대에서 deserialize 될를 FromBinary 메서드를 나타내는 결과 현지 시간 DateTime 개체 자동으로 조정 됩니다 두 번째 표준 시간대로 합니다.If a local DateTime object is serialized in one time zone by the ToBinary method, and then deserialized in a different time zone by the FromBinary method, the local time represented by the resulting DateTime object is automatically adjusted to the second time zone.

    예를 들어 한 DateTime 오후 3 시 현지 시간을 나타내는 개체For example, consider a DateTime object that represents a local time of 3 P.M. 미국에서 실행 되는 애플리케이션 태평양 표준 시간대를 사용 하는 ToBinary 메서드는 변환할 DateTime 개체를 이진 값입니다.An application that is executing in the U.S. Pacific Time zone uses the ToBinary method to convert that DateTime object to a binary value. 미국에서 실행 되는 다른 애플리케이션 동부 표준 시간대를 사용 하 여는 FromBinary 새 이진 값으로 변환할 방법이 DateTime 개체입니다.Another application that is executing in the U.S. Eastern Time zone then uses the FromBinary method to convert the binary value to a new DateTime object. 새 변수의 DateTime 오후 6 시, 원래 오후 3으로에서 동일한 시점을 나타내는 개체가The value of the new DateTime object is 6 P.M., which represents the same point in time as the original 3 P.M. 그러나 값 동부 표준 시간대의 현지 시간으로 조정 됩니다.value, but is adjusted to local time in the Eastern Time zone.

  • 경우 로컬의 이진 표현 DateTime 값 되는 시스템의 현지 표준 시간대에서 잘못 된 시간을 나타내는 FromBinary 은 호출 시간이 조정 됩니다 유효한 되도록 합니다.If the binary representation of a local DateTime value represents an invalid time in the local time zone of the system on which FromBinary is called, the time is adjusted so that it is valid.

    예를 들어, 표준 시간에서 일광 절약 시간에 전환이 발생 미국 태평양 표준 시간대에서 2010 년 3 월 14 일 오전 2 시, 오전 3 시에 한 시간 전진할 때For example, the transition from standard time to daylight saving time occurs in the Pacific Time zone of the United States 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. 다음 예제에서는 내에 포함 되는 시간이이 범위를 이진 값으로 변환 됩니다는 ToBinary 메서드에 의해 복원 되 고는 FromBinary 메서드를 원래 값은 시간으로 조정 되는 유효 합니다.The following example shows that when a time that falls within this range is converted to a binary value by the ToBinary method and is then restored by the FromBinary method, the original value is adjusted to become a valid time. 여부를 특정 날짜 및 시간 값에 적용 될 수 있습니다 수정 전달 하 여 확인할 수 있습니다는 TimeZoneInfo.IsInvalidTime 메서드를 예로 보여 줍니다.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 localDate = new DateTime(2010, 3, 14, 2, 30, 0, DateTimeKind.Local);
          long binLocal = localDate.ToBinary();
          if (TimeZoneInfo.Local.IsInvalidTime(localDate))
             Console.WriteLine("{0} is an invalid time in the {1} zone.", 
                               localDate, 
                               TimeZoneInfo.Local.StandardName);
    
          DateTime localDate2 = DateTime.FromBinary(binLocal);
          Console.WriteLine("{0} = {1}: {2}", 
                            localDate, localDate2, localDate.Equals(localDate2));
       }
    }
    // The example displays the following output:
    //    3/14/2010 2:30:00 AM is an invalid time in the Pacific Standard Time zone.
    //    3/14/2010 2:30:00 AM = 3/14/2010 3:30:00 AM: False
    
    Module Example
       Public Sub Main()
          Dim localDate As Date = DateTime.SpecifyKind(#03/14/2010 2:30AM#, DateTimeKind.Local)
          Dim binLocal As Long = localDate.ToBinary()
          If TimeZoneInfo.Local.IsInvalidTime(localDate) Then
             Console.WriteLine("{0} is an invalid time in the {1} zone.", _
                               localDate, _
                               TimeZoneInfo.Local.StandardName)
          End If
          Dim localDate2 As Date = DateTime.FromBinary(binLocal)
          Console.WriteLine("{0} = {1}: {2}", _
                            localDate, localDate2, localDate.Equals(localDate2))
       End Sub
    End Module
    ' The example displays the following output:
    '    3/14/2010 2:30:00 AM is an invalid time in the Pacific Standard Time zone.
    '    3/14/2010 2:30:00 AM = 3/14/2010 3:30:00 AM: False
    

버전 고려 사항Version Considerations

.NET Framework 버전 2.0부터는 DateTime 구조 나타내는 여부 지정된 된 시간이 현지 시간을 utc (협정 세계시) 또는 둘 다 연결 전용 틱 필드에, 개인 종류 필드를 구성 하는 날짜 및 시간을 지정 하는 100 나노초 틱 수를 포함 합니다.Starting with the .NET Framework version 2.0, a DateTime structure consists of a private Kind field, which indicates whether the specified time is local time, Coordinated Universal Time (UTC), or neither, concatenated to a private Ticks field, which contains the number of 100-nanosecond ticks that specify a date and time. 틱 수를 사용 하 여 액세스할 수 있습니다 합니다 Ticks 속성과 theKind 필드를 사용 하 여 액세스할 수 있습니다는 Kind 속성입니다.The number of ticks can be accessed with the Ticks property and theKind field can be accessed with the Kind property.

직렬화 하는 경우.NET Framework 2.0 이전을 DateTime 개체와 같은 serialization 인터페이스를 사용 하는 대신 수동으로 System.Runtime.Serialization.ISerializable의 틱 데이터만 serialize 하는 데 필요한는 DateTime합니다.Prior to the .NET Framework 2.0, if you serialized a DateTime object manually instead of using a serialization interface such as System.Runtime.Serialization.ISerializable, you needed to serialize only the Ticks data in the DateTime. .NET Framework 2.0부터 종류 데이터도 serialize 해야 있습니다.Starting with the .NET Framework 2.0, you must also serialize the Kind data.

적용 대상

추가 정보