格式化datetime变量

时间:2016-05-31 14:36:31

标签: c# datetime

我正在尝试将String格式的日期转换并存储到datetime变量中。

String fromdate= "02-JUN-2014";
DateTime dFromDate = Convert.ToDateTime(fromdate);

此dfromDate用于另一个期望日期为02-JUN-2014格式的函数。但由于dfromDate将日期存储为06/02/2014,因此存在格式异常。

8 个答案:

答案 0 :(得分:3)

您可以使用ParseExact()

String fromdate="02-JUN-2014";
DateTime dFromDate = DateTime.ParseExact(fromdate, "dd-MMM-yyyy",CultureInfo.InvariantCulture)

答案 1 :(得分:1)

用引号括起日期:

var fromdate = "02-JUN-2014";
var dFromDate = Convert.ToDateTime(fromdate);

答案 2 :(得分:0)

我不确定整个上下文,但您可以随时使用以下内容创建新日期:

DateTime thisDate1 = new DateTime(2011, 6, 10);
Console.WriteLine("Today is " + thisDate1.ToString("MMMM dd, yyyy") + ".");

// The example displays the following output:
//    Today is June 10, 2011.

答案 3 :(得分:0)

String fromdate= "02-JUN-2014";
DateTime dFromDate = DateTime.ParseExact(fromdate,"dd-MMM-yyyy", 
                                         CultureInfo.InvariantCulture);

使用ParseExact方法。

答案 4 :(得分:0)

您想使用DateTime.ParseExact

DateTime dFromDate = DateTime.ParseExact(fromdate, "dd-MMM-yyyy", CultureInfo.InvariantCulture);

如果您不是美国,您可能需要为您的语言特定文化(CultureInfo.InvariantCulture是美国的一种特殊形式)。

答案 5 :(得分:0)

Convert.ToDateTime使用CurrentCulture的标准日期和时间格式,看起来dd-MMM-yyyy不是其中之一。

您可以ParseExact method使用基于英语的文化,例如InvariantCulture

String fromdate = "02-JUN-2014";
DateTime dFromDate = DateTime.ParseExact(fromdate, "dd-MMM-yyyy", 
                                         CultureInfo.InvariantCulture);

答案 6 :(得分:0)

使用DateTime.ParseExact可能会有效,如果您确切知道格式字符串,则它是最佳选择,但您也可以为呼叫设置当前CultureInfo

String fromdate= "02-JUN-2014";
DateTime dFromDate = Convert.ToDateTime(fromdate, CultureInfo.CurrentCulture);

或者:

String fromdate= "02-JUN-2014";
DateTime dFromDate = Convert.ToDateTime(fromdate, new CultureInfo("es-ES"));

答案 7 :(得分:-1)

你的第一个问题可能是,你需要分配一个这样的字符串:

String fromdate = "02-JUN-2014";