C#DateTime从yyyy-MM-ddTHH转换:mm:ss到dd MMM yyyy

时间:2013-11-20 07:55:52

标签: c#

如何将“yyyy-MM-ddTHH:mm:ss”转换为“dd MMM yyyy”格式?对于Instance,我想将2013-04-16 05:30:05转换为2013年4月16日。实现此目的的正确方法是什么?

3 个答案:

答案 0 :(得分:7)

首先ParseExact然后执行ToString(我假设您有字符串对象,如果您有DateTime对象,请跳过第一行)

var dateTime = DateTime.ParseExact(yourDateString, "yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture);

var yourNewString = dateTime.ToString("dd MMM yyyy");

请注意,您在调试器中看到的DateTime表示取决于您当前的文化。

答案 1 :(得分:6)

首先,DateTime没有格式。但是,如果您已经有一个代表格式为DateTime的{​​{1}}的字符串,并且您希望将其转换为格式为yyyy-MM-ddTHH:mm:ss的字符串日期,则需要将其解析为{{ 1}}首先。

因此请使用dd MMM yyyy

DateTime

现在您可以使用DateTime.ParseExact

DateTime dt = DateTime.ParseExact("2013-04-16 05:30:05", "yyyy-MM-dd HH:mm:ss", null); 

请注意,如果您要使用另一个DateTime.ToString解析而不是当前(fe force english month names),则需要将另一个string result = dt.ToString("dd MMM yyyy"); 对象传递给CultureInfo / ParseExact而不是德语:ToString)。

答案 2 :(得分:1)

正如其他人提到的,DateTime没有格式。要将字符串文字解析为Date,您需要调用DateTime.Parse(如果字符串是特定于区域性的格式)或DateTime.ParseExact,如果您需要传递格式字符串。

格式可以是自定义格式,例如yyyy-MM-dd HH:mm:ss,也可以是standard format strings之一,例如。 s yyyy-MM-ddTHH:mm:ss

其中一种标准格式

2013-04-16 05:30:05 ,因此您必须通过传递自定义格式字符串进行解析:

    var dt = DateTime.ParseExact("2013-04-16 05:30:05", "yyyy-MM-dd HH:mm:ss", null);

另一方面,yyyy-MM-ddTHH:mm:sss标准格式,因此您可以写:

    var dt = DateTime.ParseExact("2013-04-16T05:30:05", "s", null);