你可以檢查它是否與-
開始,然後應用適當的格式字符串:
string[] timespans = { "-0530", "+0100" };
foreach (string timespan in timespans)
{
bool isNegative = timespan.StartsWith("-");
string format = isNegative ? "\\-hhmm" : "\\+hhmm";
TimeSpanStyles tss = isNegative ? TimeSpanStyles.AssumeNegative : TimeSpanStyles.None;
TimeSpan ts;
if (TimeSpan.TryParseExact(timespan, format, null, tss, out ts))
{
Console.WriteLine("{0} successfully parsed to: {1}", timespan, ts);
}
else
{
Console.WriteLine("Could not be parsed: {0}", timespan);
}
}
注意,我TimeSpanStyles.AssumeNegative
在TryParseExact
使用,否則,時間跨度將始終爲正,即使他們以負前綴。
你能寫一個字符串的例子嗎? – mybirthname
我很想念TimeSpan與TimeZone有什麼關係? –
這些時區偏移屬於'DateTime',而不是'TimeSpan'。 – Joey