我在C#驗證Graph的日期時間字符串時遇到了一些麻煩。 facebook API文檔顯示:驗證Facebook DateTime字符串
2014-11-01T12:00-0300
作爲日期時間格式。無論我嘗試什麼(甚至認爲他們可能在偏移量上忽略了「:」),它都沒有通過。我下面的代碼:
public bool validateDateTimeISO8601(string s)
{
// you may want to add a few more formats here
var formats = new[] { "yyyy-MM-ddThh:mm-hh",
"yyyy-MM-ddThh:mm-hh:mm",
"yyyy-MM-ddThh:mm+hh",
"yyyy-MM-ddThh:mm+hh:mm",
"yyyy-MM-ddThh:mmZ",
"yyyy-MM-ddThh:mm:ssZ" };
DateTime dt;
if (DateTime.TryParseExact(s, formats,
CultureInfo.InvariantCulture, // ISO is invariant
DateTimeStyles.RoundtripKind, // this is important
out dt))
return true;
return false;
}
有6種格式在我的格式排列。最後2次傳球,但前4次失敗,無論我扔給他們什麼。
任何想法?
使用http://nodatime.org/ – hardkoded