【发布时间】:2010-04-30 05:22:46
【问题描述】:
前 您在文本框中以各种形式输入日期
- 2010 年 8 月 12 日
- 2010 年 8 月 12 日
- 2010/12/8 月
输出是 三个文本框首先是天秀= 12 第二个文本框是 Months show=augest 第三个文本框是 Year show= 2010
【问题讨论】:
标签: c#
前 您在文本框中以各种形式输入日期
输出是 三个文本框首先是天秀= 12 第二个文本框是 Months show=augest 第三个文本框是 Year show= 2010
【问题讨论】:
标签: c#
要针对三种预期格式解析/验证,您可以使用如下所示的内容。给定模式,一旦你知道它是有效的,你就可以使用string.Split 来获取第一部分;如果您需要更优雅的东西,您可以依次对每个模式使用 TryParseExact 并提取所需的部分(或重新格式化)。
string s1 = "12/August/2010",
s2 = "August/12/2010",
s3 = "2010/12/August";
string[] formats = { "dd/MMMM/yyyy", "MMMM/dd/yyyy", "yyyy/dd/MMMM" };
DateTime d1 = DateTime.ParseExact(s1, formats,
CultureInfo.CurrentCulture, DateTimeStyles.None),
d2 = DateTime.ParseExact(s2, formats,
CultureInfo.CurrentCulture, DateTimeStyles.None),
d3 = DateTime.ParseExact(s3, formats,
CultureInfo.CurrentCulture, DateTimeStyles.None);
【讨论】:
使用DateTime.Parse(String, IFormatProvider) 或DateTime.ParseExact 将字符串转换为日期时间。
然后可以使用对应的properties提取日、月、年。
【讨论】:
使用DateTime.Parse(s)。见MSDN
然后您可以获取 DateTime 结构的各个部分。
例如
DateTime date = DateTime.Parse("some input date string");
string day = DateTime.Day.ToString();
string month = DateTime.Month.ToString();
string year = DateTime.Year.ToString();
【讨论】:
date dt date.Parse(txtBox.text);
txtBox1.Text = dt.Day.ToString();
txtBox2.Text = dt.ToString("MMM");
txtBox3.Text = dt.Year.ToString();
date.Parse 可能会抛出取决于你给它的字符串,但你可以通过尝试使用不同的文化来解析它来回退。
编辑:添加了一个 M
【讨论】: