我有一个简短的程序,它将字符串转换为简单字符串的日期和时间格式。
然而,由于字符串的顺序,系统似乎无法将字符串转换为日期时间格式。应转换的字符串是一个例子:“Thu Dec 9 05:12:42 2010”
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"));
答案 0 :(得分:6)
DateTime time;
if (DateTime.TryParseExact(re,
"ddd MMM d hh:mm:ss yyyy", CultureInfo.CurrentCulture,
DateTimeStyles.None, out time)) {
Console.WriteLine(time.ToString("dddd, dd MMMM yyyy HH:mm:ss"));
} else {
Console.WriteLine("'{0}' is not in an acceptable format.", re);
}
答案 1 :(得分:1)
通常需要给出一个关于您期望的特定模式的提示:
编辑:双倍空间是一种痛苦,因为d
无法处理;
DateTime time = DateTime.ParseExact(re.Replace(" "," "),
"ddd MMM d hh:mm:ss yyyy", CultureInfo.CurrentCulture);
答案 2 :(得分:0)
答案 3 :(得分:0)
试试这个
DateTime time = Convert.ToDateTime("2010, 9, 12, 05, 12, 42");
Console.WriteLine(time.ToString("dddd, dd MMMM yyyy HH:mm:ss"));
答案 4 :(得分:0)
不确定字符串输入是否应该具有双倍空格,但您可以将其拉出并使用geoff的答案。
re = Regex.Replace(re, @"\s+", " ");
其他选项是相应地调整他的匹配字符串。
DateTime time = DateTime.ParseExact(re, "ddd MMM d HH:mm:ss yyyy", CultureInfo.CurrentCulture);