2012-01-16 5 views
3

저는 작업중인 웹 사이트의 "피드"로 통합 할 몇 가지 다른 XML 피드를 가지고 있습니다 (C#). 대부분의 피드는 rss2.0 표준, 즉 뉴스 피드와 페이 스북 피드를 따릅니다. 그러나, 나는 또한 지저귐을 당기고있다. 그리고 그들은 내가 말할 수있는 것에서 그들 자신의 표준을 사용하는 것처럼 보인다. 페이스 북과 트위터에서 게시 날짜를 잡아 당기는 문제가 조금씩 다른 형식이기 때문에 문제가 있습니다.xml 피드에서 DateTime으로 파싱 된 날짜 문자열

페이스 북 = <lastBuildDate>Thu, 12 Jan 2012 00:06:54 +0000</lastBuildDate>

트위터 = <created_at>Wed Jan 11 23:48:15 +0000 2012</created_at>

나는, 그 다음에 시작하는 것은 매우 확실하지 않다 도움 :

답변

13

형식을 인식하지 못하면 DateTime.ParseExact를 수행해야합니다. 당신은 문자열의 확장 방법을 사용하여 값을 구문 분석 할 수 있어야한다

public static class Extensions 
{ 
    public static DateTime ParseTwitterDateTime(this string date) 
    { 
     const string format = "ddd MMM dd HH:mm:ss zzzz yyyy"; 
     return DateTime.ParseExact(date, format, CultureInfo.InvariantCulture); 
    } 

    public static DateTime ParseFacebookDateTime(this string date) 
    { 
     const string format = "ddd, dd MMM yyyy HH:mm:ss zzzz"; 
     return DateTime.ParseExact(date, format, CultureInfo.InvariantCulture); 
    } 
} 

:

다음 클래스를 사용하여.

참고로 사용 : Twitter date parsing in C#

0

주셔서 감사합니다 당신이 페이 스북, 말, 출신 알고 있다면, 및 페이스 북 일관되게 동일한 날짜 형식을 사용하는 경우 해당 구성 요소 (요일, 월, 시간 등)에 대한 문자열을 구문 분석하고 C#에서 인식하는 순서로 재정렬 한 다음 DateTime.Parse() 날짜로 변환 할 수 있습니다. 각 피드에 대해 다른 재배치 방법을 사용해야합니다.

Thu, 12 Jan 2012 00:06:54 +0000 

그런

Jan 12, 2012 00:06:54 +0000 

또는 무언가 (C 번호는 실제로 구문 분석, 그래서 필요에 따라 수정합니다 있는지 확실하지 않습니다)를하게된다.