C#如何将字符串转换为时间和日期格式?
我有一个简短的程序,可以将一个字符串从一个简单的字符串转换为日期和时间格式 但是,由于字符串的顺序,系统似乎无法识别该字符串,无法将其转换为日期-时间格式。应该转换的字符串是这样一个示例:“Thu Dec 9 05:12:42 2010” 已使用C#如何将字符串转换为时间和日期格式?,c#,datetime,C#,Datetime,我有一个简短的程序,可以将一个字符串从一个简单的字符串转换为日期和时间格式 但是,由于字符串的顺序,系统似乎无法识别该字符串,无法将其转换为日期-时间格式。应该转换的字符串是这样一个示例:“Thu Dec 9 05:12:42 2010” 已使用Convert.ToDateTime方法,但该方法不起作用 有人能告诉我密码吗?谢谢 String re = "Thu Dec 9 05:12:42 2010"; DateTime time = Convert.ToDateTime(re); Co
Convert.ToDateTime
方法,但该方法不起作用
有人能告诉我密码吗?谢谢
String re = "Thu Dec 9 05:12:42 2010";
DateTime time = Convert.ToDateTime(re);
Console.WriteLine(time.ToString("dddd, dd MMMM yyyy HH:mm:ss"));
通常有必要给它一个关于您期望的特定模式的提示: 编辑:双空格是一种痛苦,因为
d
无法处理它
DateTime time = DateTime.ParseExact(re.Replace(" "," "),
"ddd MMM d hh:mm:ss yyyy", CultureInfo.CurrentCulture);
看看
看看这个
DateTime time = Convert.ToDateTime("2010, 9, 12, 05, 12, 42");
Console.WriteLine(time.ToString("dddd, dd MMMM yyyy HH:mm:ss"));
不确定字符串输入是否应该有双空格,但您可以将其拉出并使用geoff的答案
re = Regex.Replace(re, @"\s+", " ");
另一个选择是相应地调整他的匹配字符串
DateTime time = DateTime.ParseExact(re, "ddd MMM d HH:mm:ss yyyy", CultureInfo.CurrentCulture);
如果您没有检查
TryParseExact
的结果,您可能假设成功-在这种情况下,您应该使用ParseExact
而不是TryParseExact
-它会告诉您您的假设是错误的。@JavaNoob-您需要确保输入字符串与您期望的格式匹配。其他答案/评论中有一些解决方案可以修复您的一些异常(例如@Marc的作弊评论:re.Replace(“,”)
),它输出无法转换的错误。“System.DateTimeParse.ParseExact(字符串s,字符串格式,DateTimeFormatInfo dtfi,DateTimeStyles样式)”的错误@JavaNoob-hmmm;双重空间是一种痛苦;实际上,我想知道你是否应该简单地通过传递re.Replace(“,”)
(第一个引号中有两个空格,第二个引号中有一个空格)来作弊,但是如果双空格不适用于10个以上的日期呢?等等“2010年12月11日星期四05:12:42”?谢谢。@javanob-“d”处理两位数字很好;区别在于“dd”要求前导零。即使在使用.replace方法之后,系统也不会重新论证“Thu Dec 9 05:12:42 2010”。请查看另一个用户回答的此网页,该用户成功地获得了完全正确的答案:感谢帮助!
DateTime time = DateTime.ParseExact(re, "ddd MMM d HH:mm:ss yyyy", CultureInfo.CurrentCulture);