你需要使用"yyyy-MM-dd'T'HH:mm:ssK"
格式化为InvariantCulture using DateTime.ParseExact方法如;
string s = "2014-04-18T14:45:00+02:00";
var date = DateTime.ParseExact(s, "yyyy-MM-dd'T'HH:mm:ssK",
CultureInfo.InvariantCulture);
看一眼The "K"自定义格式说明符
然后你可以获得你的字符串表示DateTime
with DateTime.ToString()方法。DateTime
没有固有的格式,它只有一个值。您可以获得用于格式化的字符串表示形式。
date.ToString("dd.MM.yyyy HH.mm.ss", CultureInfo.InvariantCulture);
//18.04.2014 03.45.00
Here a demonstration.
记住,mm
是几分钟,MM
几个月了。和hh
is for 12 小时制这是01
to 12
. But HH
is 24小时制这是00
to 23
.
这就是为什么你无法解析14
with hh
说明符。我假设你的真实表示格式是dd.MM.yyyy HH.mm.ss
EDIT: 在你之后comment, 您可以使用"MM/dd/yyyy HH:mm:ss"
格式如;
string s = "04/18/2014 14:45:00";
var date = DateTime.ParseExact(s, "MM/dd/yyyy HH:mm:ss",
CultureInfo.InvariantCulture);
Console.WriteLine(date); // 18/04/2014 14:45:00