[英].net c# string to DateTime GMT+0 or UTC (from any/unknown format)
我需要從RSS feed解析並添加到數據庫日期。 有一個問題,一個是“星期三,2013年5月8日EDT”,另一個是EST,另一個是CET,另一個是“ 2013年12月23日,星期一21:45:32 +0200”。 收到EDT時解析失敗。 這是因為我使用過:
CultureInfo provider = CultureInfo.InvariantCulture;
var format = "ddd, dd MMM yyyy hh:mm:ss EST";
DateTime postTime;
//<... make f.pubDate to have date string ...>
var convertionResult = DateTime.TryParse(f.pubDate, out postTime);
if (!convertionResult)
{
postTime = DateTime.ParseExact(f.pubDate, format, provider);
//<...>
};
有沒有通用的方法可以做到這一點,我肯定會缺少一些東西:)
謝謝!
我不相信.NET框架中可以解析時區縮寫的任何內容-出於充分的理由,因為它們不是全局唯一的。 老實說,RSS使用這種令人討厭的日期/時間格式是很可惜的。
您可能最好有一個從“時區縮寫”到“時區偏移”的查找表。
自定義日期和時間格式的“ zzz”部分可能會解析“ +0200”部分-使用Noda Time,您可以明確指定該部分。 如果.NET無法立即處理它,則可以在正確的位置添加一個冒號,這樣就可以了。
另一個選擇是找到一個現有的RSS解析器,為您完成所有這些操作-我確定您不是遇到此問題的第一個人。
好的,我找到了解決方案。
該項目代碼/想法有助於解決此問題。 這個家伙-Ashot Aslanyan-已將轉換器編寫為時間戳(以及cource:D的整個RSS閱讀器)。
此處來源: http : //rssreadercs.codeplex.com/SourceControl/latest#trunk/RSSReader/RssReader/RSSReader.cs
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.