波兰格式日期字符串转DateTime对象失败,求问题排查
问题分析与解决方案
嘿,问题很明确啦——你用的格式字符串和输入的日期格式完全不匹配,所以TryParseExact才会失败。
核心问题点
你的输入字符串是"24.04.2018 00:00:00",它的格式是**dd.MM.yyyy HH:mm:ss**(日.月.年 时:分:秒),但你在TryParseExact里传的格式是"MM/dd/yyyy"(月/日/年),既没匹配分隔符(点号 vs 斜杠),也没包含输入里的时间部分,系统自然识别不了。
正确的代码实现
要成功转换,你需要先让格式字符串完全匹配输入的结构,之后如果需要MM/dd/yyyy格式的字符串,再对转换后的DateTime对象做格式化输出就行:
string input = "24.04.2018 00:00:00"; DateTime d; // 用输入对应的格式字符串去匹配 if (DateTime.TryParseExact(input, "dd.MM.yyyy HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out d)) { // 如果需要输出MM/dd/yyyy格式的字符串 string formattedDate = d.ToString("MM/dd/yyyy", System.Globalization.CultureInfo.InvariantCulture); // 在这里执行你的业务逻辑,比如使用formattedDate或者直接操作DateTime对象d }
额外说明
DateTime对象本身是不携带“格式”信息的,它只是存储日期时间的数值。所谓的“格式”只是在将其转换为字符串时才需要指定的显示规则。所以只要成功转换出DateTime对象d,后续你可以根据需求把它格式化成任何你想要的字符串形式。
内容的提问来源于stack exchange,提问作者iantukic
相关产品推荐
相关产品推荐

