2009-12-29 4 views
2

이 겉으로보기에는 분명한 질문에 대한 답변을 찾는 데 얼마나 오랜 시간이 걸릴지 믿을 수 없습니다.DateTime을 C#으로 날짜로 변환하는 방법

Cannot implicitly convert type 'System.DateTime' to 'System.Date' I can even call:

Date.Now 

Date SomeRandomMadeUpDate = DateTime.Now.AddMonths(randomMonths).Date; 
하지만이 DateTime을 반환에 .AddDays를 호출.

다시, 질문은 내가 더 "날짜"유형 등이없는 C# Date

답변

3

보기 ' .NET 4.0에는 Date 유형이 있지만 System.Dataflow.dll에는 Date 유형이 있다는 것을 알고 있습니다. 그냥 인수로 날짜 시간으로, 생성자를 사용

Date d = new Date(dt); 
+0

네. 좋은 dective 일, 그리고 고마워. 이제 나는 더 많이 알고있다! – thepaulpage

11

에 C#을 DateTime을 설정하려면 어떻게합니까. 모든 DateTimes입니다. 그것은 .Date를 호출 할 때, 그 날 자정으로 DateTime을 얻는 것입니다.

VB.NET에서 "날짜"데이터 형식에 대해 이야기하는 경우 DateTime과 동일하지만 믿거 나 말거나입니다.

+2

그런데 왜 내가 오류가 발생합니까? – thepaulpage

+0

아무 생각없이, 난 그냥 VB에서 그것을 시도하고 어떤 문제없이 작동 ... –

+0

나는 C#에서 그것을 시도하고 아무 System.Date 유형이 없습니다 ... –

10

.NET에는 날짜 만 나타내는 유형이 없습니다.이 기능을 사용하면 Noda Time (아직 프로덕션을 시작할 준비가 거의되어 있지 않습니다)과 같은 문제가 발생합니다.

DateTime.Date은 원본과 같은 날짜이지만 자정에 다른 DateTime을 반환합니다. 즉 기본적으로 당신이 오늘의 날짜를 원하는 경우 다음 DateTime.TodayDateTime.Now.Date를 호출하는 간단한 방법입니다 참고 :(.NET에서 Date 유형이 가장 가까운입니다.

내가 컴파일러가 오류를주고있다 왜 아무 생각도 없어

Test.cs(7,9): error CS0246: The type or namespace name 'Date' could not be found (are you missing a using directive or an assembly reference?)

:

using System; 

class Test 
{ 
    static void Main() 
    { 
     Date today = DateTime.Now.Date; 
    } 
} 

이 오류를 제공합니다 : 내 컴퓨터에서하지 않는 -이 을 제안 메시지는 System.Date 유형입니다

비슷한 오류 메시지가 나타나는 완벽한 프로그램을 제공 할 수 있습니까? System.Date 유형이있는 다른 라이브러리가 있습니까? (토미 CARLIER 아마도 System.Dataflow, 알 수 있듯이?)

+1

System.Dataflow.dll (SQL Server Modeling의 일부)은 System.Date 형식을 갖습니다. –

+3

@ 토미 : 그것은 내 의심이었습니다 (편집 참조) - 그건 솔직히 끔찍한 것입니다. SQL Server에 고유 한 어떤 것이'System' 네임 스페이스에 기여하지 않아야합니다. ( –

+0

@ 토미 : 그렇지 않습니다. –

1

일을보십시오이 난 당신이

로 사용할 수 있다고 생각합니다 그래서 문자열로 만 날짜를 반환합니다

string onlyDate = DateTime.Now.ToString("dd/MM/yyyy"); 

다음

Date dateNow = new Date(onlyDate); 
관련 문제