Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.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#_.net_Winforms_Datetime - Fatal编程技术网

C# 日期转换错误

C# 日期转换错误,c#,.net,winforms,datetime,C#,.net,Winforms,Datetime,我正在开发windows应用程序 因为我的日期是字符串格式的>>fileDate=“15/03/2013” 我希望将其转换为日期格式,因为我的数据库字段是datetime 我用了以下东西来做它>> DateTime dt = DateTime.ParseExact(fileDate, "yyyyy-DD-MM", CultureInfo.InvariantCulture); DateTime dt = DateTime.Parse(fileDate); 这两种方法都被证明是失败的,给了我错误

我正在开发windows应用程序

因为我的日期是字符串格式的>>
fileDate=“15/03/2013”

我希望将其转换为日期格式,因为我的数据库字段是
datetime

我用了以下东西来做它>>

DateTime dt = DateTime.ParseExact(fileDate, "yyyyy-DD-MM", CultureInfo.InvariantCulture);

DateTime dt = DateTime.Parse(fileDate);
这两种方法都被证明是失败的,给了我错误>>

String was not recognized as a valid DateTime.
什么是错误


还有其他方法吗?

这是因为字符串“15/03/2013”不能用格式字符串“yyyy-MM-dd HH:ss”解析为日期时间。

您必须根据需要的日期字符串给出日期格式。你可以在网上看到更多

改变

你的代码是

DateTime dt = DateTime.ParseExact(fileDate, "dd/MM/yyyy", CultureInfo.InvariantCulture);
您应该这样做:

DateTime dt = DateTime.ParseExact(fileDate, "dd/MM/yyyy",CultureInfo.InvariantCulture);

您必须以与您在当前代码中使用的格式
“yyyyy-dd-MM”
相同的样式为格式(
“dd/MM/yyyy”
)传入字符串,因为日期部分要求小写
d
而不是大写
d
,这是错误的,此外,对于指定5
y
s的年份部分,它应该是4,如
yyyy
,根据日期字符串的顺序应该是:
“dd/MM/yyyy”
。为了安全起见,您甚至可以使用
“d/M/yyyy”
,这将适用于一位数或两位数的日/月

因此,您的代码应该是:

string fileDate="15/03/2013";
DateTime dt = DateTime.ParseExact(fileDate, "dd/MM/yyyy", CultureInfo.InvariantCulture);
你可以在

上看到更多信息,你可以试试这个 SimpleDataFormat dateFormat=新的SimpleDataFormat(“MM/dd/yyyy”);
Date convertedDate=dateFormat.parse(“ur_dateString”)

尝试从上述代码中删除HH:ss。不,仍然错误是samenope。.以下所有答案都有效[因为它们声明了一件相同的事情]我提到了这一点,这就是为什么我将日期分隔符设置为
/
而不是
-
@Adil有一个问题>>我的fileDate值为“15/03/2013”,dt[转换后]将我的值设置为>1/15/2013 12:03:00 AM。有什么问题?它给出了2013年3月15日12:00:00 AM,请确保您使用了正确的格式字符串,即“dd/MM/yyyy”@pakpuneriporag您必须使用大写字母
“MM”或
“M”
几个月,而不是
“MM”
“M”
,意思是分钟。在您的示例中,
3
已变成分钟。有一个问题>>我的fileDate值为“15/03/2013”,而dt[转换后]将我的值设置为>1/15/2013 12:03:00 AM。可能会出现什么问题?通过dd/mm/yyyy更改dd/mm/yyyy。mm(小写)是分钟的格式字符串,而不是月份的格式字符串。是的,它工作正常,但有一个问题>>我的fileDate值为“15/03/2013”,dt[转换后]将我的值设置为>1/15/2013 12:03:00 AM。问题可能是什么?原始问题中的顺序是
“dd/MM/yyyy”
,而不是
“MM/dd/yyyy”
。我认为,
SimpleDataFormat
类型是针对Java的,而不是C。有一个问题>>我的fileDate值为“15/03/2013”,dt[转换后]将我的值设置为>1/15/2013 12:03:00 AM。有什么问题吗?@PakkPuneriPorag,这看起来很奇怪,你确定你的fileDate有上面的字符串吗,还要确保你没有做
DateTime。像问题中那样解析
。我错用了mm而不是mm
mm
表示分钟,而
mm
表示月份。是的,我知道了,谢谢你的支持
 string fileDate = "15/03/2013";
 DateTime dt = DateTime.ParseExact(fileDate, "dd/mm/yyyy", CultureInfo.InvariantCulture);
DateTime dt = DateTime.ParseExact(fileDate, "dd/MM/yyyy",CultureInfo.InvariantCulture);
string fileDate="15/03/2013";
DateTime dt = DateTime.ParseExact(fileDate, "dd/MM/yyyy", CultureInfo.InvariantCulture);