C#
DateTime 비교하기
DeFo
2020. 5. 30. 17:29
실행 환경 | ||
OS | Windows 10 Pro 버전 1903(OS 빌드 18362.836) |
|
Language | C# | |
.NET | .NET Framework 4 | |
IDE | Visual Studio Community 2017 |
DateTime은 날짜와 시간을 나타냅니다.
- DateTime의 Compare()를 이용하여 두 DateTime의 날짜와 시간을 비교할 수 있습니다.
- DateTime의 AddYears, AddDays, AddHours 등 ( 당연히 Minutes와 Second도 있겠죠? Milliseconds 도 있습니다.) 을 사용해서 DateTime 값을 변경할 수도 있습니다.
- ToString()으로 DateTime 타입을 특정 포맷 문자열로 변경할 수 있습니다.
- 반대로 Convert.ToDateTime 을 이용해 문자열을 DateTime 형태로 변경할 수 있습니다.
Compare 은 두 인스턴스를 비교하고 첫 번째 인스턴스가 두 번째 인스턴스보다 빠른지, 같은지, 늦은 지를 나타내는 정수를 반환합니다.
t1를 비교할 것 번째 매개변수, t1를 비교할 두 번째 매개변수라 했을 때 Compare 반환 값은 다음과 같습니다.
반환 값 | 조건 |
-1 | t1가 t2보다 이전인 경우 |
0 | t1이 t2와 같은 경우 |
1 | t1이 t2보다 나중인 경우 |
아래 소스는 두 DateTime의 값을 비교한 소스입니다.
public void UseDateTime() { DateTime firstDateTime = DateTime.Now; // {2020-05-30 오후 5:05:21} DateTime secondDateTime = DateTime.Now.AddDays(1); // {2020-05-31 오후 5:04:22} DateTime.Compare(firstDateTime, secondDateTime); // -1 DateTime.Compare(Convert.ToDateTime(firstDateTime.ToString("yy-MM-dd")), Convert.ToDateTime("20-05-30")); // 0 DateTime.Compare(firstDateTime, Convert.ToDateTime("20-05-30")); // 1; DateTime.Compare(firstDateTime, Convert.ToDateTime("2020-05-30T23:00:00")); // -1; }
비교 값이 위에서 확인한 대로 나타나는 것을 볼 수 있습니다.
소스를 구동해 보니 Convert.ToDateTime("20-05-30") 과 같은 형태에서는 {2020-05-30 오전 12:00:00} 의 DateTime 값을 반환합니다.
Convert.ToDateTime 이나 ToString을 사용할 때 날짜만 지정하는 경우 시간은 오전 12:00:00로 지정이 되네요.
날짜만 비교하고 싶어서 두 매개변수를 다 ToString으로 날짜만 입력한 후 비교를 해봤습니다.
내용은 모두 개인 공부 기록 용이기에 부족한 부분이나 내용상 오류가 있을 수도 있습니다.
참고용으로 보시기 바랍니다.
혹 잘못된 내용이 있을 시 댓글 남겨주시면 수정하도록 하겠습니다.