我怎样才能在c#中的datetime变量中仅指定2011年的年份?

Pan*_*uri 8 c# datetime

我有一个asp文本框,用户只填写一年的值,对于这个值,我在c#application中有Datetime type属性,在DB中有Date类型列.所以我想将txtYear.Text转换为DateTime但它只会保存和/或显示年份.在这种情况下请帮助我.

Pet*_*nov 8

要仅显示年份,请使用格式"yyyy".

        string s = "2011";
        DateTime d = new DateTime(int.Parse(s), 1, 1);


        Console.WriteLine(d.ToString("yyyy"));
        Console.WriteLine(d);
Run Code Online (Sandbox Code Playgroud)


Nic*_*ter 8

DateTime对象将始终保存完整的DateTime值,您不能使用它来存储一年.(无论如何会使用什么用途?)此外,"year"的数据类型是int,而不是DateTime.

因此,我建议在您的代码和数据库中将属性更改为datatype int.


Akr*_*hda 5

您必须指定DateTime要操作的值的格式:

String dateTimeFormat = "yyyy";
Run Code Online (Sandbox Code Playgroud)

要只显示一部分DateTime值,请使用以下命令:

dateTimeValue.ToString(dateTimeFormat);
Run Code Online (Sandbox Code Playgroud)

要读取String一个代表值DateTime使用以下命令:

DateTime.ParseExact(stringValue, dateTimeFormat, CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)

DateTime.ParseExact方法(String,String,IFormatProvider)使用指定的格式和特定​​于区域性的格式信息将日期和时间的指定字符串表示形式转换为其等效的DateTime。字符串表示形式的格式必须与指定的格式完全匹配。

DateTime.ToString方法将当前DateTime对象的值转换为其等效的字符串表示形式。