如何在C#中将1/1/1300日期转换为日期时间值

时间:2011-10-08 09:40:39

标签: c# .net datetime

我有一个场景,我有像1/1/1300这样的日期值,我想将它转换为datetime对象以进行比较。在Sql Server中我使用datetime2作为这个日期,它工作得很完美,但我不知道如何在C#中将它转换为datetime2?我正在使用.Net 4

3 个答案:

答案 0 :(得分:1)

您可以使用ParseExact方法:

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

或如果日期格式错误或代表无效日期,请使用TryParseExact

DateTime date;
if (DateTime.TryParseExact("1/1/1300", "d/M/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out date))
{
    // parsing was successful => you could use the date here
}

答案 1 :(得分:0)

C#中没有DateTime2,只有DateTime:

string dateString = "1/1/1300";
DateTime date = DateTime.Parse(dateString, CultureInfo.InvariantCulture);

答案 2 :(得分:0)

如果您要查找的是将datetime2 SQL数据类型转换为.NET数据类型,请检查以下答案:

Conversion of a datetime2 data type to a datetime data type results out-of-range value

似乎建议类型相同DateTime,答案中的代码段:

new DataColumn("myDate", typeof(DateTime))

我假设您使用的是DataReader,您也可以将该值视为DateTime,如果DateTimeOFfset,也可以视为DateTime

如果您使用的是ORM,则取决于使用的ORM。如果这仍然没有帮助,您可能需要指定访问数据库的方式。