날짜를 YYYYMMDD 형식으로 전송해야하는 이상한 API를 사용하고 있습니다.
다음과 같은 작업을 할 생각이었습니다.
string date = string.Concat(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);
더 나은 방법이 있나요?
댓글
Answer
예 : 날짜 형식
var dateString = DateTime.Now.ToString("yyyyMMdd");
답변
또 다른 옵션은 다음과 같은 확장 메서드를 만드는 것입니다.
public static class DateTimeExtensions { public static string ToYMD(this DateTime theDate) { return theDate.ToString("yyyyMMdd"); } public static string ToYMD(this DateTime? theDate) { return theDate.HasValue ? theDate.Value.ToYMD() : string.Empty; } }
다음과 같이 사용합니다.
var dateString = DateTime.Now.ToYMD();
구현 된 확장은 Nullable DateTime 값에서도 작동합니다.
이러한 “yyyyMMdd”형식의 DateTime 값으로 많은 작업을 수행하는 경우 확장 메서드는 입력 횟수가 줄어드는 이점이 있습니다.
DateTime.Now
를 여러 번 호출 할 때주의하세요. 예를 들어DateTime.Now.Month
가 1 월 31 일 자정 이전과DateTime.Now.Day
자정 이후에는20120101
와 같은 날짜가 표시됩니다. ' 가능성은 낮지 만 확실히 가능합니다.