YYYYMMDD 형식으로 날짜 시간 문자열 형식 지정

날짜를 YYYYMMDD 형식으로 전송해야하는 이상한 API를 사용하고 있습니다.

다음과 같은 작업을 할 생각이었습니다.

string date = string.Concat(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day); 

더 나은 방법이 있나요?

댓글

  • 이렇게 DateTime.Now를 여러 번 호출 할 때주의하세요. 예를 들어 DateTime.Now.Month가 1 월 31 일 자정 이전과 DateTime.Now.Day 자정 이후에는 20120101와 같은 날짜가 표시됩니다. ' 가능성은 낮지 만 확실히 가능합니다.
  • 이미 ' 답변 '이지만 방법과 귀하의 방법의 주요 차이점은 1 자리 월과 날짜를 처리하는 방법입니다. 귀하는 2019 년 1 월 1 일에 201911을 인쇄하고 나머지는 20190101을 인쇄합니다.

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 값으로 많은 작업을 수행하는 경우 확장 메서드는 입력 횟수가 줄어드는 이점이 있습니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다