C# 如何拆分txtbox.Text
我有一个带有日期选择器的文本框,当我在日历上更改日期时,它会触发事件textchangedC# 如何拆分txtbox.Text,c#,asp.net,C#,Asp.net,我有一个带有日期选择器的文本框,当我在日历上更改日期时,它会触发事件textchanged 我需要拆分文本框中的文本(日期),以获得该日期的年份。您的处理程序可能如下所示: protected void YourTextBox_TextChanged(Object sender, EventArgs e) { var theDate = DateTime.Parse(YourTextBox.Text); var theYear = theDate.Year; } 即使您使用日期
我需要拆分文本框中的文本(日期),以获得该日期的年份。您的处理程序可能如下所示:
protected void YourTextBox_TextChanged(Object sender, EventArgs e) {
var theDate = DateTime.Parse(YourTextBox.Text);
var theYear = theDate.Year;
}
即使您使用日期选择器来设置值,您也需要处理用户提供非日期值而Parse()
失败的情况
string dateExample = yourDateObj.ToString("d");
string[] dateSplit = dateExample.Split("/");
dateSplit[2]将是年份。为什么不使用
日期时间选择器.Value
DateTime time = DateTime.Parse(txt);
time.Year;
int year = dateTimePicker1.Value.Year;
这更高效、更简洁、更不容易出错
但是,如果您只有文本,请使用DateTime.Parse
或DateTime.TryParse
:
int? year = null;
DateTime dt;
if(DateTime.TryParse(textBox1.Text, out dt))
year = dt.Year;
试试这个:
var date = DateTime.Parse(txtbox.Text);
var year = date.Year;
您可以将
txtbox.Text.Split(char)
与日历使用的任何分隔符一起使用
例如,如果您的日历设置日期为2013-10-16,请使用'-'
调用Split并使用第一个结果,因此txtbox.Text.Split('-')[0]
。如果它看起来像2013年10月15日,那么使用'/'
调用并使用第三个结果,因此txtbox.Text.Split('/')[2]
根据日历输出的模糊程度,解析为日期可能有效,也可能无效。您可以尝试String.Format(),为什么不使用
DateTimePicker.Value
int year=dateTimePicker1.Value.year代码>。因为在这件事之后我需要调用另一个方法,我不明白为什么您需要调用另一个方法这一事实对您如何获得年份有任何影响。如果您确实需要它作为字符串,可以使用stringyear=dateTimePicker1.Value.year.ToString()谢谢你,伙计,我知道了!如果区域性日期分隔符不为/,则将不起作用。另外,先使用date.ToString,然后使用String.Split,这真的很糟糕。只需使用date.Year.True!如果将格式从“d”更改为其他格式,则需要更改.Split。。我是一个邪恶的家伙>:)不,“d”格式说明符将使用当前的文化日期分隔符,这在大多数国家不是/而是有所不同。所以分裂会失败,没想到!好电话。