C#DateTime从yyyy-MM-ddTHH转换:mm:ss到dd MMM yyyy
如何将“yyyy-MM-ddTHH:mm:ss”转换为“dd MMM yyyy”格式? 对于Instance,我想将2013-04-16 05:30:05转换为2013年4月16日。实现此目的的正确方法是什么?
首先, DateTime
没有格式。 但是如果你已经有一个表示格式为yyyy-MM-ddTHH:mm:ss
的DateTime
的字符串,并且你想将它转换为格式为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
:
string result = dt.ToString("dd MMM yyyy");
请注意,如果要使用另一个DateTimeFormat
进行解析而不是当前(fe force英文月份而不是德语: dt.ToString("dd MMM yyyy", CultureInfo.InvariantCulture)
),则需要将另一个CultureInfo
对象传递给ParseExact
/ ToString
。
首先ParseExact
然后执行ToString
(我假设你有字符串对象,如果你有DateTime对象,跳过第一行)
var dateTime = DateTime.ParseExact(yourDateString, "yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture); var yourNewString = dateTime.ToString("dd MMM yyyy");
请注意,您在调试器中看到的DateTime
表示取决于您当前的文化。
正如其他人提到的,DateTime没有格式。 要将字符串文字解析为Date,您需要调用DateTime.Parse(如果字符串是特定于区域性的格式)或DateTime.ParseExact,如果您需要传递格式字符串。
格式可以是自定义格式,如yyyy-MM-dd HH:mm:ss
或标准格式字符串之一 ,例如。 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:ss
是标准格式,所以你可以写:
var dt = DateTime.ParseExact("2013-04-16T05:30:05", "s", null);