C# 日期转换错误
我正在开发windows应用程序 因为我的日期是字符串格式的>>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); 这两种方法都被证明是失败的,给了我错误
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
,这是错误的,此外,对于指定5y
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而不是mmmm
表示分钟,而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);