-4

我有一个带有日期选择器的文本框,当我在日历上更改日期时,它会触发事件 textchanged。

我需要拆分文本框中的文本(日期)以获取该日期的年份。

4

6 回答 6

1

您的处理程序可能如下所示:

protected void YourTextBox_TextChanged(Object sender, EventArgs e) {
    var theDate = DateTime.Parse(YourTextBox.Text);
    var theYear = theDate.Year;
}

即使您使用日期选择器来设置值,您也需要处理用户提供非日期值并Parse()失败的情况。

于 2013-10-16T15:36:28.210 回答
1
DateTime time = DateTime.Parse(txt);
time.Year;
于 2013-10-16T15:36:51.890 回答
1

你为什么不使用DateTimePicker.Value?

int year = dateTimePicker1.Value.Year;

这更高效、更简洁且不易出错。

但是,如果您只有文本,请使用DateTime.Parseor DateTime.TryParse

int? year = null;
DateTime dt;
if(DateTime.TryParse(textBox1.Text, out dt))
    year = dt.Year;
于 2013-10-16T15:38:24.960 回答
1

尝试这个:

var date = DateTime.Parse(txtbox.Text);
var year = date.Year;
于 2013-10-16T15:38:32.563 回答
0
string dateExample = yourDateObj.ToString("d");
string[] dateSplit = dateExample.Split("/");

dateSplit[2] 将是年份。

于 2013-10-16T15:36:41.760 回答
0

您可以使用txtbox.Text.Split(char)日历用作分隔符的任何内容。

例如,如果您的日历设置日期如 2013-10-16,则调用 Split'-'并使用第一个结果,所以txtbox.Text.Split('-')[0]. 如果它看起来像 2013 年 10 月 15 日,然后调用'/'并使用第三个结果,所以txtbox.Text.Split('/')[2].

根据日历输出的模糊程度,解析为日期可能有效,也可能无效。

于 2013-10-16T15:41:02.747 回答