Lee*_*ite 3 c# parsing timespan
我需要解析一个指定环境时区的字符串.它看起来像+0100或-0530指定与UTC时区的偏移量.
在这些字符串中,加号/减号始终存在.我想用这个TimeSpan.ParseExact()方法解析它,我很确定有一种方法.该Parse()方法知道如何处理减号,但该ParseExact()方法的文档没有提到任何关于标志的内容.
到目前为止,我正在使用的格式是hhmm,但这需要以处理+/-符号的内容为前缀.有谁能指出我正确的方向?
您可以检查它是否以-,然后应用适当的格式字符串:
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);
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,我用TimeSpanStyles.AssumeNegative的TryParseExact,否则,时间跨度是,即使他们以负号前缀始终为正.