如何将特定日期格式作为DateTime数据类型返回

时间:2013-04-08 17:01:45

标签: c#

我正在使用实体框架进行查询,我需要比较2个数据时间。一个来自字段,另一个来自选择。问题是我需要将用户输入转换为datetime,但是使用我想要的格式和我需要的数据类型。我需要返回一个这样的值:

DateTime date = Convert.ToDataTime("2012-02-30");

但是日期变量的值为2012/02/30,我需要这种格式2012-02-30,数据类型必须是DateTime

3 个答案:

答案 0 :(得分:0)

在C#中,DateTime对象在将其转换为字符串之前没有与之关联的格式。然后可以按照您想要的任何方式对其进行格式化。

同样,当您从文本加载值时,它将转换为DateTime。然后,您可以对此对象运行比较。

DateTime date1 = Convert.ToDataTime("2012-02-30");
DateTime date2 = Convert.ToDataTime("2012/02/30");

if (date1 == date2) Console.WriteLine("They match!");

答案 1 :(得分:0)

由于对DateTime如何运作的误解,您提出了我认为错误的问题。它不会将值存储为字符串。你的字符串实际上只是日期时间的一种表示。

您实际需要做的是查看DateTime.ToString()覆盖。

链接 http://msdn.microsoft.com/en-gb/library/zdtaw1bw.aspx

输出DateTime时,请使用

之类的内容
date.ToString("yyyy-MM-dd"); 

您将获得所需的格式。

但就基础理论而言,日期时间本身并未存储为字符串。您只需要担心显示它的方式。

答案 2 :(得分:0)

如前所述,DateTime值没有与之关联的格式。所有DateTime都作为日期处理,无论它们是从哪个字符串格式生成的。

如果您的问题是从字符串生成DateTime对象,请查看

之类的内容
Convert.ToDateTime

DateTime.TryParse

如果您的问题是比较两个日期时间,那么内置的比较运算符在DateTime上的功能与其他任何功能一样。

UserDate.Equals(FieldDate)
UserDate > FieldDate
UserDate < FieldDate
等等等等。

最后,如果您的问题是字符串格式化并且您无法准确控制用户输入的内容,那么您需要专门询问该问题,因为我们需要了解用户可以输入的内容,告诉您什么是也许可以用它。

添加了修改

看起来最后一个是你的问题......

尝试使用简单的字符替换。

string newString = DateString.Replace("/", "-");

这只能用于单一的,特定的格式化更改......但它会完成你似乎想要做的事情。