如何将一种DateTime格式转换为另一种格式?

时间:2015-12-16 07:06:52

标签: c# datetime

我有一个对象{System.DateTime}值为{5/17/2010 12:00:00 AM}。 我想将此日期时间格式转换为"d-MMM-yyyy"

string msStartDt="5/17/2010 12:00:00 AM";    
DateTime.ParseExact(msStartDt, "MM/dd/yyyy HH:mm:ss",CultureInfo.InvariantCulture).ToString("d-MMM-yyyy");
  

字符串未被识别为有效的DateTime。

ParseExac()方法的第二个参数是一个格式说明符,它定义了msSartDt所需的格式。

如果我将{5/17/2010 12:00:00 AM}更改为{17-Dec-2010 12:00:00 AM},我们需要更改DateTime.ParseExact()的第二个参数

我的问题是我们如何以编程方式找到msStartDt的格式,以便我们可以放入DateTime.ParseExact()方法的第二个参数。

5 个答案:

答案 0 :(得分:1)

您需要使用

string msStartDt = "5/17/2010 12:00:00 AM";    
var str = DateTime.ParseExact(msStartDt, "M/dd/yyyy hh:mm:ss tt", 
                              CultureInfo.InvariantCulture).ToString("d-MMM-yyyy");

另一方面,你的问题是vauge。你说我有一个对象DateTime值是5/17/2010 12:00:00 AM 但你的代码中有一个string

如果您已经有DateTime,则只需使用ToString方法对其进行格式化。您根本不需要解析

DateTime dt = ...
var str = dt.ToString("d-MMM-yyyy", CultureInfo.InvariantCulture);
  

我的问题是如何以编程方式找到msStartDt的格式   所以我们可以放入DateTime.ParseExact()方法的第二个参数。

这是不可能的。

想想你有一个像01/02/2015这样的字符串。这个字符串的正确的格式是什么?是2月1日还是1月2日?是dd/MM/yyyy还是MM/dd/yyyy?你可以看到,这完全是模棱两可的。如果您的格式为string,则必须知道解析DateTime的正确格式。

答案 1 :(得分:0)

您需要以字符串格式指定AM/PM

DateTime.ParseExact(msStartDt, "M/dd/yyyy hh:mm:ss tt",CultureInfo.InvariantCulture)

您还需要从HH更改为hh,因为HH适用于24小时

Here你有所有日期时间的常数。

答案 2 :(得分:0)

请尝试这个:

DateTime.ParseExact(msStartDt, "M/dd/yyyy hh:mm:ss tt",CultureInfo.InvariantCulture);

当我们使用ParseExact时,我们解析的字符串格式必须与字符串完全相同。在您的情况下,您省略了AM / PM指示符。此外,您需要更正数月和数小时。如需了解更多信息,请查看here

答案 3 :(得分:0)

您应该指定正确的解析格式

DateTime.ParseExact(msStartDt, "M/d/yyyy h:mm:ss tt", CultureInfo.InvariantCulture).ToString("d-MMM-yyyy")

答案 4 :(得分:0)

首先,将您指定的日期从String转换为DateTime,然后转换为另一种日期格式:

string dateString;
CultureInfo provider = CultureInfo.InvariantCulture;
dateString = "05/17/2010 12:00:00 AM";
DateTime dt = Convert.ToDateTime(dateString, provider);
Console.WriteLine(dt.ToString("d-MMM-yyyy HH:mm:ss tt"));

请参阅以下链接中的其他日期时间格式:http://www.csharp-examples.net/string-format-datetime/

您的输出应该如下截图所示: enter image description here