c# – 转换时拆分DateTime字符串
发布时间:2020-12-16 01:38:38 所属栏目:百科 来源:网络整理
导读:我正在编写一个将字符串转换为日期的C#类.我觉得很容易.该类接受格式字符串,如“yyyy-MM-dd”和输入字符串,如“2010-10-10” 但是我有些情况会给我带来麻烦: format "yyyyMMdd" input "19950000" 要么 format "dd-MM-yyyy" input "00-06-2001" 请注意,这些
我正在编写一个将字符串转换为日期的C#类.我觉得很容易.该类接受格式字符串,如“yyyy-MM-dd”和输入字符串,如“2010-10-10”
但是我有些情况会给我带来麻烦: format "yyyyMMdd" input "19950000" 要么 format "dd-MM-yyyy" input "00-06-2001" 请注意,这些情况的日期和/或月份为零(’00’),并且这些情况无法转换为DateTime.我需要更换它们. 为了处理这些情况,我需要在部分中分割输入字符串,每个日期,月份和年份,因此我可以设置一些默认的日期和月份(可能是01),如果它们丢失了.但我需要使用formatstring来实现这一目标. 所以问题是,如何在formatstring中指定的组件中拆分inputtring? 谢谢 [更新]使用Joe的回答我想出了这个: string[] formats = { format,format.Replace("dd","00").Replace("MM","00"),format.Replace("MM","00") }; // Parse input DateTime d = DateTime.ParseExact(txtDate.Text,formats,CultureInfo.InvariantCulture,DateTimeStyles.None); 这将使用提供的格式,并为日,月和日和月创建具有零(’00’)的替代格式. 谢谢乔! 解决方法
如果您有一组明确定义的格式,则可以使用DateTime.ParseExact,传递一组格式字符串.
// Define all allowed formats string[] formats = { "yyyyMMdd","yyyyMM00","yyyy0000" }; // Parse input DateTime d; d = DateTime.ParseExact("20100930",DateTimeStyles.None); d = DateTime.ParseExact("20100900",DateTimeStyles.None); d = DateTime.ParseExact("20100000",DateTimeStyles.None); 缺少的天数/月将设置为默认值1. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读