C#将YYYY-MM-DD转换为MM / DD / YYYY(“ – ”TO“/”)
发布时间:2020-12-15 23:31:38 所属栏目:百科 来源:网络整理
导读:嘿,我遇到了麻烦. string record = el.InnerText;var result1 = parseString(record);var StartDate = string.Join("",result1.ConvertAll(r = string.Format("{0}",r)).ToArray());//DateTime strStartDate = DateTime.ParseExact(StartDate,"mm-dd-yyyy",C
嘿,我遇到了麻烦.
string record = el.InnerText; var result1 = parseString(record); var StartDate = string.Join("",result1.ConvertAll(r => string.Format("{0}",r)).ToArray()); //DateTime strStartDate = DateTime.ParseExact(StartDate,"mm-dd-yyyy",CultureInfo.InvariantCulture); var EndDate = string.Join("",result1.ConvertAll(r => string.Format("{1}",r)).ToArray()); //DateTime strEndDate = DateTime.ParseExact(EndDate,CultureInfo.InvariantCulture); 这是parseString函数: private static List<string[]> parseString(string input) { var pattern = @"Starts+Date:s+([0-9-]+)s+Ends+Date:s+([0-9-]+)s+(?:Warrantys+Type:s+w+s+)?Status:s+(w+)s*"; return Regex.Matches(input,pattern).Cast<Match>().ToList().ConvertAll(m => new string[] { m.Groups[1].Value,m.Groups[2].Value,m.Groups[3].Value }); } DateTimes无效,因为我猜测将字符串转换为DateTime时“ – ”不是有效字符. 我尝试了record = record.Replace(“ – ”,“/”)但最终弄乱了我的字符串并且它停止显示(来自html页面). 解决方法
你的问题不在 – .没有什么不妥.但是你似乎用小写字母m而不是大写字母M来表示你的月份:
//DateTime strStartDate = DateTime.ParseExact(StartDate,CultureInfo.InvariantCulture); (另请注意,您将其放在评论中 – 使其不太明显!) 将其更改为: //Note the capital MM DateTime strStartDate = DateTime.ParseExact(StartDate,"MM-dd-yyyy",CultureInfo.InvariantCulture); 这就是你得到错误的原因.小写字母m表示分钟,而不是月份.要表示月份,请使用资本M. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |