Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# c语言中字符串到日期的转换#_C# - Fatal编程技术网

C# c语言中字符串到日期的转换#

C# c语言中字符串到日期的转换#,c#,C#,我有一个字符串“13/6/2011”。我必须将其转换为日期时间。为此,我正在使用 DateTime.ParseExact("13/6/2011","DD/MM/YYYY",null); 但它显示 String was not recognized as a valid DateTime 例外。 知道为什么吗?您的月份格式是MM,但您只为月份指定了一位数字 如果您输入06它应该可以工作,或者如果您使用当月的M格式说明符,则将使用一位数字 此外(正如Jon Skeet所提到的),您使用了DD

我有一个字符串“13/6/2011”。我必须将其转换为日期时间。为此,我正在使用

 DateTime.ParseExact("13/6/2011","DD/MM/YYYY",null);
但它显示

 String was not recognized as a valid DateTime
例外。
知道为什么吗?

您的月份格式是
MM
,但您只为月份指定了一位数字

如果您输入
06
它应该可以工作,或者如果您使用当月的
M
格式说明符,则将使用一位数字

此外(正如Jon Skeet所提到的),您使用了
DD
YYYY
而不是
DD
(或
d
来处理一位数的天数)和
YYYY

有关各种日期时间格式说明符的完整列表,请参阅。

除了ChrisF提到的“6”对“06”问题外,您的格式字符串不正确。月份的日期是“dd”,年份是“yyyy”,因此您的格式应该是“dd/MM/yyyy”

此外,我建议显式地传入
CultureInfo.InvariantCulture
,否则“/”实际上可以被视为不同的(特定于区域性的)日期分隔符。(另一种选择是引用斜杠,但我认为使用不变的区域性更能说明问题。)

换句话说,我会用这样的方式:

// Sample for text: 13/06/2011
DateTime date = DateTime.ParseExact(text, "dd/MM/yyyy",
                                    CultureInfo.InvariantCulture);
如果您不一定有两位数的日或月,请使用:

DateTime date = DateTime.ParseExact(text, "d/M/yyyy",
                                    CultureInfo.InvariantCulture);

我现在还不清楚这是否也适用于(比如)2011年6月13日。

您可能需要使用不同的格式字符串:

DateTime.ParseExact("13/6/2011","dd/MM/yyyy",null);
或者你可以使用
d
,这是“短日期格式”


您的日期长度为9,但您的格式长度为10.1。如前所述,Ash-MM是两个符号,但您提供1。2.DD必须是DD(小写字母)。您知道
DD
DD
之间的区别吗?或者至少是
YYYY
YYYY
吗?你说得对,我只是提醒大家注意月份格式标记,但错过了日期和年份是不正确的
DateTime.ParseExact("13/6/2011","dd/MM/yyyy",null);
DateTime.ParseExact("13/6/2011","d",null);
DateTime dt=  DateTime.ParseExact("13/06/2011","dd/MM/yyyy",null);