我的字符串包含这样的日期“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('/');
但它总是崩溃,因为字符串不代表日期
答案 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");