[c#] 날짜 대 DateTime

이벤트 날짜가 반환되어야하는 프로그램을 작업 중입니다.

내가 찾고 있어요 Date아닌, DateTime.

날짜 만 반환하는 데이터 유형이 있습니까?



답변

아니에요. DateTime날짜와 시간으로 구성된 특정 시점을 나타냅니다. 그러나 Date속성을 통해 날짜 부분을 검색 할 수 있습니다 ( DateTime시간이로 설정된 또 다른 부분 00:00:00).

그리고 당신은을 통해 개별 날짜 속성을 검색 할 수 있습니다 Day, Month하고 Year.


답변

시간 부분, 시간대, 로컬 대 utc 등에 대해 걱정하지 않고 간단한 날짜가 필요할 때 간단한 Date 구조체 를 만들었습니다 .

Date today = Date.Today;
Date yesterday = Date.Today.AddDays(-1);
Date independenceDay = Date.Parse("2013-07-04");

independenceDay.ToLongString();    // "Thursday, July 4, 2013"
independenceDay.ToShortString();   // "7/4/2013"
independenceDay.ToString();        // "7/4/2013"
independenceDay.ToString("s");     // "2013-07-04"
int july = independenceDay.Month;  // 7

https://github.com/claycephus/csharp-date


답변

불행히도 .Net BCL에는 없습니다. 날짜는 일반적으로 시간이 자정으로 설정된 DateTime 객체로 표시됩니다.

짐작할 수 있듯이 이는 Date 객체의 경우 시간대 처리가 전혀 필요하지 않더라도 주변에 모든 시간대 문제가 있음을 의미합니다.


답변

래퍼 클래스를 만듭니다. 이 같은:

public class Date:IEquatable<Date>,IEquatable<DateTime>
    {
        public Date(DateTime date)
        {
            value = date.Date;
        }

        public bool Equals(Date other)
        {
            return other != null && value.Equals(other.value);
        }

        public bool Equals(DateTime other)
        {
            return value.Equals(other);
        }

        public override string ToString()
        {
            return value.ToString();
        }
        public static implicit operator DateTime(Date date)
        {
            return date.value;
        }
        public static explicit operator Date(DateTime dateTime)
        {
            return new Date(dateTime);
        }

        private DateTime value;
    }

그리고 value당신이 원하는 것을 노출하십시오 .


답변

Date 유형은 VB.NET에서 사용하는 DateTime 유형의 별칭 일뿐입니다 (예 : int가 Integer가 됨). 두 유형 모두 시간 부분이 00:00:00으로 설정된 객체를 반환하는 Date 속성이 있습니다.


답변

DateTime에는 날짜 부분을 분리하는 데 사용할 수 있는 Date 속성이 있습니다. 의 toString 방법은 시간 부분이 비어있는 경우에만 날짜 부분을 표시하는 좋은 일을한다.


답변

DateTime 개체에는 값의 날짜 부분 만 반환하는 속성이 있습니다.

    public static void Main()
{
    System.DateTime _Now = DateAndTime.Now;
    Console.WriteLine("The Date and Time is " + _Now);
    //will return the date and time
    Console.WriteLine("The Date Only is " + _Now.Date);
    //will return only the date
    Console.Write("Press any key to continue . . . ");
    Console.ReadKey(true);
}