c#解析UTC日期时间.有任何想法吗?当在格式字符串中使用时区偏移说明符时,我建议您按照MSDN中的建议解析为DateTimeOffset而不是DateTime:usingSystem;使用System.Globalization;类测试{staticvoidMain(string[]args){stringtext="11/23/201123:59:59UTC+0800";字符串模式="MM/dd/yyyyHH:mm:ss'UTC'zzz";DateTimeOffsetdto=DateTimeOffset.ParseExact(text,pattern,CultureInfo.InvariantCulture);控制台.WriteLine(dto);如果需要,可以将其转换为UTC中的DateTime值,但不存在“具有8小时偏移的DateTime”之类的东西-DateTime被认为是通用的、本地的或未指定的,无处可用于特定的偏移存储。DateTime在很多方面都是一种奇怪的类型,可能会给不知情的开发人员带来问题。用于格式化的Msdn:https://msdn.microsoft.com/en-us/library/az4se3k1(v=vs.110).aspxpublicclassProgram{publicstaticvoidMain(){//原始日期字符串_date="Thu2015年1月15日11:32:09+0200";//描述日期格式字符串_parsePattern="dddMMMddHH:mm:sszzzyyyy";DateTimeOffsetdto=DateTimeOffset.ParseExact(_date,_parsePattern,CultureInfo.InvariantCulture);//最后设置Console.WriteLine(dto.ToString("dd.MM.yyyyhh:mm:ss",CultureInfo.CreateSpecificCulture("tr-TR")));}}对于扩展方法:publicstaticDateTimegetDateFromFormat(thisstring_date,string_parsePattern){DateTimeOffsetdto=DateTimeOffset.ParseExact(_date,_parsePattern,CultureInfo.InvariantCulture);返回Convert.ToDateTime(dto.ToLocalTime());}经测试:https://dotnetfiddle.net/xdnjGy正如James所写,你可以试试vardt=DateTime.ParseExact("11/23/201123:59:59UTC+0800","MM/dd/yyyyHH:mm:ss'UTC'K",CultureInfo.InvariantCulture);您将在“当地时间”获得预约。我觉得你需要用到ParseExacthttp://msdn.microsoft.com/en-us/library/w2sa9yss.aspx以上是C#学习教程:c#解析UTC日期时间共享的全部内容,如果有用大家和需要了解更多C#学习教程,希望大家多多关注~本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
