将字符串日期转换为datetime

时间:2014-03-04 10:33:52

标签: c#

我的字符串包含这样的日期“Mar 19 1969 12:00 AM”,我想将其转换为03/08/1969

我试过

DateTime dt = DateTime.Parse("Mar  8 1969 12:00AM","MM/dd/yyyy hh:mm:ss tt",CultureInfo.InvariantCulture);
var stringdate = dt.ToString("dd/MM/yyyy").Split('/');

但它总是崩溃,因为字符串不代表日期

4 个答案:

答案 0 :(得分:3)

这就是我所需要的:

DateTime dt = DateTime.Parse("Mar  8 1969 12:00AM", System.Globalization.CultureInfo.InvariantCulture);
string stringdate = dt.ToString("MM/dd/yyyy");

你也可以这样做:

DateTime dt;
if(DateTime.TryParse("Mar  8 1969 12:00AM", out dt))
    string stringdate = dt.ToString("MM/dd/yyyy"); //on success assign the value

TryParse的返回值表示转换是否成功。

答案 1 :(得分:1)

您应该使用方法ParseExact

http://msdn.microsoft.com/en-us/library/w2sa9yss(v=vs.110).aspx

字符串的问题在于它与提供的/预期的格式不匹配。

DateTime dt = DateTime.ParseExact("Mar 08 1969 12:00AM","MMM dd yyyy hh:mmtt",CultureInfo.InvariantCulture);

答案 2 :(得分:0)

DateTime.Parse不接受格式字符串。您需要使用DateTime.ParseExact,并使第二个参数对应于给定日期字符串的格式。看来你会尝试使用格式“MM / dd / yyyy ...”来解析“1969年3月8日”,但这些格式不匹配。

答案 3 :(得分:0)

你可以使用DateTime.ParseExact,注意你在Mar 8之间有两个空格,一旦你将字符串解析为Date你可以使用ToString并给Custom Date Format你想。

DateTime dt = DateTime.ParseExact("Mar  8 1969 12:00AM", "MMM  d yyyy hh:mmtt", System.Globalization.CultureInfo.InvariantCulture);
string dateString = dt.Date.ToString("MM/d/yyyy");