2014-03-04 159 views
-2

我有字符串包含日期这样的“1969年3月8日12:00 AM”我想将其转换为1969年3月8日将字符串转换日期为datetime

我试图

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

您的日期不符合格式mm/dd/yyyy。您可能需要编写自己的方法将'Mar'转换为'03',将当天的两位数字转换为'/' –

回答

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的返回值表示转换是否成功。

0

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

0

您可以使用DateTime.ParseExact,注意你有之间空间,一旦你解析字符串到日期,你可以使用的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");