我在varchar数据类型的表中有一个字段,其中包含1800 + 0100的时间,如何在格林尼治标准时间19:00显示它?是否有任何C#方法将时间作为1800 + 0100并转换为19:00?
提前致谢.任何帮助将不胜感激.
如果您的时间实际上是ISO-8601格式,那么您可以这样做:
DateTime dt = DateTime.ParseExact("1800+0100", "HHmmzzz", null,
DateTimeStyles.AdjustToUniversal);
Console.WriteLine(dt.TimeOfDay); // 17:00:00
Run Code Online (Sandbox Code Playgroud)
但请注意,这(正确)输出"17:00:00",而不是"19:00:00".
如果您的字符串不是ISO-8601格式 - 并且"1800 + 0100"实际上意味着代表19:00 GMT - 那么您需要手动解析字符串,或者可能在传递之前对其进行预处理到ParseExact.可能是这样的:
string s = "1800+0100";
string temp = s.Substring(0, 4) + ((s[4] == '+') ? '-' : '+') + s.Substring(5);
DateTime dt = DateTime.ParseExact(temp, "HHmmzzz", null,
DateTimeStyles.AdjustToUniversal);
Console.WriteLine(dt.TimeOfDay); // 19:00:00
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
267 次 |
| 最近记录: |