C#学习教程:找出c#中字符串日期的datetime格式该应用程序使用日期格式,如“2012-11-2115:22:35”。我已经知道格式是“yyyy-MM-ddHH:mm:ss”。但是我如何以编程方式找到任意输入字符串的日期和时间格式呢?有没有办法做到这一点?这可能对你有帮助..(在数组中,添加更多格式来检查)string[]formats={"M/d/yyyy","MM/dd/yyyy","d/M/yyyy","dd/MM/yyyy","yyyy/M/d","yyyy/MM/dd","Md-yyyy","MM-dd-yyyy","dM-yyyy","dd-MM-yyyy","yyyy-Md","yyyy-MM-dd","Mdyyyy","MM.dd.yyyy","dMyyyy","dd.MM.yyyy","yyyy.Md","yyyy.MM.dd","M,d,yyyy","MM,dd,yyyy","d,M,yyyy","dd,MM,yyyy","yyyy,M,d","yyyy,MM,dd","Mdyyyy","MMddyyyy","dMyyyy","ddMMyyyy","yyyyMd","yyyyMMdd"};日期时间日期值;foreach(stringdateStringFormatinformats){if(DateTime.TryParseExact(strDateTime,dateStringFormat,CultureInfo.InvariantCulture,DateTimeStyles.None,outdateValue))//Console.WriteLine("Converted'{0}'to{1}.",dateStringFormat,dateValue.ToString("yyyy-MM-dd"));Console.WriteLine(dateStringFormat);}我想你会遇到月份值“yyyy-MM-dd”或“yyyy-dd-MM”,除非你在你的解析器中添加偏好没有办法知道哪个是正确的。示例:2012/08/07-“这会是七月还是八月?”您可以强制执行它,并希望有一个与该格式匹配的CultureInfovardatestring="2012-10-0512:00:03";日期时间;varmatchingCulture=CultureInfo.GetCultures(CultureTypes.AllCultures).FirstOrDefault(ci=>DateTime.TryParse(datestring,ci,DateTimeStyles.None,outtime))如果要识别格式,几乎没有办法100%当然。但是,您可能希望浏览给定CultureInfo和TryParse支持的所有格式。不幸的是,这可能会产生不正确的结果,因为无法判断年、月和日是这样的:10/11/12根据您的文化偏见,您可以将其解释为2012年10月11日;2012年11月10日或2010年11月12日。你没有提到你想用日期做什么,所以我会给你常规的最佳实践:如果你在应用程序的不同模块之间传输日期,请使用固定日期格式。如果需要格式化日期和时间,请使用给定区域性的默认日期格式。谈到默认日期格式,如果您想要接受最终用户输入的日期,您可能想要以文化的默认格式解析自由格式输入,或者您可以创建(或使用预先存在的)日期时间选择器控件。后一种方法是优选的。Ad1.要转换为不变的日期和时间格式,请使用:DateTimenow=DateTime.UtcNow;字符串格式=now.ToUniversalTime.ToString(CultureInfo.InvariantCulture);或(转换为ISO8601类似格式):stringformatted=now.ToString("u");同样,您可以从不变格式解析DateTime:DateTimeresult;字符串源=“11/20/201211:22:33”;if(DateTime.TryParse(source,CultureInfo.InvariantCulture,DateTimeStyles.AssumeUniversal,outresult)){//用结果做一些事情}或(通用格式不需要CultureInfo):DateTime结果;字符串源=“2012-11-2011:22:33Z”;if(DateTime.TryParse(source,outresult)){//dosomething}Ad2&3.特定于文化的格式化和解析类似于格式化和解析不变日期,但您需要将InvariantCulture替换为检测到的特定实例,例如CultureInfo.CurrentCulture。根据应用程序的类型,您可能希望使用专用的日历控件,即jQueryUIDatepicker。使用以下代码:stringsysFormat=CultureInfo.CurrentCulture.DateTimeFormat;以上就是C#学习教程:找出c#中字符串date的日期时间格式的所有内容分享,如果对大家有用还需要进一步了解C#的学习教程,希望大家多多关注对吧——本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
