C#의 DateTime.ToBinary() 메서드는 현재 DateTime 객체를 64비트 이진(binary) 값으로 직렬화하는 데 사용됩니다. 이렇게 변환된 값은 나중에 DateTime.FromBinary() 메서드를 통해 원래의 DateTime 객체를 그대로 복원할 수 있습니다.
반환 값은 64비트 부호 있는 정수(long)이며, 날짜·시간 정보와 Kind 속성(현지 시간, UTC 등)까지 함께 인코딩되어 저장됩니다.
문법(Syntax)
메서드의 기본 문법은 다음과 같습니다.
public long ToBinary();
예제 1 – 특정 날짜 직렬화하기
다음은 지정한 날짜와 시간을 ToBinary() 메서드로 직렬화하는 예제입니다.
using System;
public class Demo {
public static void Main() {
DateTime d = new DateTime(2019, 10, 10, 8, 10, 40);
Console.WriteLine("Date = {0}", d);
long res = d.ToBinary();
Console.WriteLine("64-bit binary value : {0}", res);
}
}출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Date = 10/10/2019 8:10:40 AM 64-bit binary value : 637062918400000000
예제 2 – 현재 시간 직렬화하기
이번에는 DateTime.Now를 사용해 현재 시스템 시간을 직렬화해 보겠습니다.
using System;
public class Demo {
public static void Main() {
DateTime d = DateTime.Now;
Console.WriteLine("Date = {0}", d);
long res = d.ToBinary();
Console.WriteLine("64-bit binary value : {0}", res);
}
}출력 결과
실행 시점의 현재 시간에 따라 다음과 같은 형태로 출력됩니다.
Date = 10/16/2019 8:15:56 AM 64-bit binary value : -8586303931293472296
정리
DateTime.ToBinary()는 날짜 데이터를 파일이나 데이터베이스에 저장하거나 네트워크로 전송할 때 유용하게 활용할 수 있습니다. 직렬화된 값은 DateTime.FromBinary(long) 메서드를 사용하면 언제든 원래의 날짜와 시간으로 되돌릴 수 있으므로, 간단하고 안전한 날짜 직렬화 방식으로 널리 사용됩니다.