如何将诸如2009-05-08 14:40:52,531这样的字符串转换为DateTime?


当前回答

使用DateTime.Parse(字符串):

DateTime dateTime = DateTime.Parse(dateTimeStr);

其他回答

你基本上有两个选择。DateTime.Parse()和DateTime.ParseExact()。

第一个在语法方面非常宽容,将以许多不同的格式解析日期。它对可能以不同格式出现的用户输入很有帮助。

ParseExact将允许您指定用于解析的日期字符串的确切格式。如果您的字符串总是使用相同的格式,那么使用这个是很好的。通过这种方式,您可以轻松地检测出与预期数据的任何偏差。

你可以这样解析用户输入:

DateTime enteredDate = DateTime.Parse(enteredString);

如果你有一个特定的字符串格式,你应该使用另一种方法:

DateTime loadedDate = DateTime.ParseExact(loadedString, "d", null);

“d”代表短日期模式(更多信息请参阅MSDN), null指定当前区域性应用于解析字符串。

我尝试了各种方法。对我有用的是:

Convert.ToDateTime(data, CultureInfo.InvariantCulture);

我的数据是2017年9月24日上午9:31:34

String now = DateTime.Now.ToString("YYYY-MM-DD HH:MI:SS");//make it datetime
DateTime.Parse(now);

这个给了你

2019-08-17 11:14:49.000

转换。ToDateTime或DateTime。解析

string input;
DateTime db;
Console.WriteLine("Enter Date in this Format(YYYY-MM-DD): ");
input = Console.ReadLine();
db = Convert.ToDateTime(input);

//////// this methods convert string value to datetime
///////// in order to print date

Console.WriteLine("{0}-{1}-{2}",db.Year,db.Month,db.Day);