John Koerner 的回答有一些缺点;
+或-,可能需要额外的字符串操作。它可以处理-或不处理符号,但它不能处理+字符本身。TimeSpan.Parse(string)过载,如果CurrentCulture的TimeSeparator是不是:(我知道这是罕见的)此方法抛出FormatException。除此之外,我认为TimeSpan.Parse这不是解析UTC Offset的最佳方法。事实上 anOffset也是一个时间间隔,但这个值可能并不总是被成功解析。
我认为最好的选择是带有格式说明符的DateTimeOffset.TryParseExact方法。由于属性将其值返回为,因此完全可以与 一起使用。zzzDateTimeOffset.OffsetTimeSpanDateTime
例如;
var s = "+05:30";
DateTimeOffset dto;
var dtop = DateTimeOffset.TryParseExact(s, "zzz",
CultureInfo.InvariantCulture,
DateTimeStyles.None, out dto);
var today = DateTime.Today;
today = today.AddHours(dto.Offset.TotalHours);
Run Code Online (Sandbox Code Playgroud)
这适用于所有的不可能性UTC偏移格式(±[hh]:[mm],±[hh][mm]或±[hh])。
| 归档时间: |
|
| 查看次数: |
1321 次 |
| 最近记录: |