2014-07-14 1 views
0

내 응용 프로그램 중 하나에서 date을 서버에서 string으로받습니다.00:00:00 (날짜 없음)에서 날짜 시간으로

예 :

2014-04-04 00:00:00 
2013-05-07 13:00:36 
2014-05-03 
2014-02-01-07:00:00 '(obviously not a valid datetimeformat but thats been handled further inside the code) 
00:00:00 'The null-date (meaning NULL is the value inside the database) 

는 나에게 두통을주고있다 널 날짜입니다. 때문에 나는 {00:00:00} datetime 그건 내가 항상 today의 날짜와 not the DateTime.Minvalue

코드 예제 얻을 parse하려고하면 :

  1. :

    Dim i As DateTime 
        i = DateTime.Parse(i) 
        Console.WriteLine(i.ToString("yyyy-MM-dd HH:mmm:ss")) 'Returns 2014-07-14 00:00:00 
        Console.ReadLine() 
    

    나는 아래의 결과 중 하나를 달성하고 싶습니다를 no Regex 사용 null 날짜를 감지하는 날짜 - 구성 요소의 존재 여부 (또는 부재)를 어떻게 감지 할 수 있습니까?

  2. 어떻게 할 수 있습니까? 나는 null-date (00:00:00)을 파싱의 출력이 DateTime.MinValue이거나 nothing 인 datetime에 캐스트했다.

나는 해결책이 쉽다는 것을 알고 있지만, 나는 그것을 놓치고있다. 나는이 문제와 관련하여 어떤 해결책이나 조언을 주시면 감사하겠습니다.

참고 : 소프트웨어는 매우 오래되어 여전히 .Net 2.0

주에서 실행 :수도는 "00:00:00"그래서 String.Contains 밖으로 질문이 포함 유효한 날짜를.

+5

왜 평등을 사용하세요? 문자열 *이 "00:00:00"과 같고 다르게 취급하는지 확인하십시오. –

+0

그 해결책은 매우 간단합니다. 내가 왜 그렇게 생각하지 않았 니? 귀하의 주어진 솔루션을 제외하고 (어떤 방식 으로든 우수) datetime.minvalue에 캐스트 할 수있는 가능성이 있습니다 (전혀 없음)? – User999999

+0

Jon Skeet이 말한 바는'Trim' 함수를 사용하여 비교 전에 문자열 주위의 공백을 제거합니다. 추신 : DateTime.MinValue에 캐스팅에 관해서는, 당신이'Trim (MyString) = "00:00:00"처럼 원하는 값을 할당하면 MyDate = DateTime.MinValue' – Jens

답변

2

DateTime.Parse에 대한 도움말이 ;-)

i = DateTime.Parse("00:00:00", Nothing, Globalization.DateTimeStyles.NoCurrentDateDefault) 

MSDN을 제안처럼 당신은 NoCurrentDateDefault을 설정할 수 있습니다 http://msdn.microsoft.com/en-us/library/system.datetime.parse%28v=vs.110%29.aspx

다음과 같은 형태의 걸릴 수 있습니다 구문 분석 할 문자열 :

  • ...

  • 시간은 있지만 날짜 구성 요소가없는 문자열. 이 방법을 사용하면 구문 분석 (문자열, IFormatProvider를, DateTimeStyles) 오버로드를 호출하는 방법 1 월 1 일 가정하는 경우, 스타일 매개 변수에 DateTimeStyles.NoCurrentDateDefault을 포함하지 않는 한, 현재 날짜를 가정 0001

+0

달콤한 정확히 내가 필요한! 힘내 친구 야! – User999999

관련 문제