2013-02-27 161 views
-1

我知道这个问题之前已经被问及使用各种方法解决。日期格式“dd/MM/yyyy”改为“yyyy/MM/dd”

我将一个字符串的值转换为DateTime。

在整个项目中,我都使用了相同的CultureInfo,所有字符串在转换为日期时使用Convert.ToDateTime()完成,但现在有一个文本字段拒绝转换。

我曾尝试:

string date = "27/02/2013"; 
string startdated = (Convert.ToDateTime(date)).ToString("yyyy/MM/dd"); 

(转换为datetime和改变它回到我的要求的格式刺也能正常工作的一切)

即使

Datetime dt = Convert.toDateTime(date); doesn't work 
DateTime.ParseExact(date, "yyyy/MM/dd", format); doesn't work 

而且所有给我同样的错误“字符串未被识别为有效的日期时间。”。我使用ajax日历扩展器(CalendarExtender.Format =“dd/MM/yyyy”为显示目的完成了此操作,这也适用于其他地方,即“dd/MM/yyyy”用于显示,而“yyyy/MM/dd“),除了这个最终值不会改变。寄托都在没有外部服务器

回答

3

你的日期是date = "27/02/2013";和当前格式(在DateTime.ParseExact"yyyy/MM/dd"通过我的机器做它应该是:

"dd/MM/yyyy" 

所以下面的代码应工作。

string date = "27/02/2013"; 
DateTime dt = DateTime.ParseExact(date, "dd/MM/yyyy", CultureInfo.InvariantCulture); 

您还可以使用格式"d/M/yyyy"这将负责日期/月份的单位或双位数字。

+0

在我沮丧的时刻,我错误地输入了我的DateTime.ParseExact(date,“dd/MM/yyyy”,CultureInfo.InvariantCulture);问题在这里。道歉我确实有它作为“dd/MM/yyyy”,它失败了,因为我已经删除了我的日历扩展程序,并将它们替换为默认日历日期选择器,它只是使用日历作为显示器,其值作为所需的“yyyy/MM/DD”。不完全是我想要的,但它的工作原理 – Domo 2013-03-01 12:17:31

+0

@Domo,碰巧:),但您可能会尝试单个数字格式''d/M/yyyy'''在您之前的场景中,可能是单日和月份的单位数字和多位数字。但很高兴你的问题有点清楚。 – Habib 2013-03-01 12:19:52

+0

thanx提示。我确实有单位和双位数字 – Domo 2013-03-01 12:30:02

4

您的输入字符串格式与您提供DateTime.ParseExact的格式不同。

对于这个工作

DateTime.ParseExact(date, "yyyy/MM/dd", format); 

你有年/月/日格式输入日期。但是你的字符串在天/月/年

这应该会更好。

string date = "27/02/2013"; 
DateTime parsedDate = DateTime.ParseExact(date, "dd/MM/yyyy", CultureInfo.InvariantCulture); 
相关问题