从TextBox读取日期值并转换为月份和年份

时间:2013-11-21 20:49:29

标签: c# asp.net

我在详细视图中有一个文本框,文本框的值是一个日期,但它只显示月份和年份,它是这样的:2013年11月所以我想取这个值并像这样转换您可以看到,我希望格式为YYYYMMDD但是日期应始终为01,这是本月的第一天。那我怎么能从2013年11月到20131101呢?这是我的代码,我知道我必须首先从字符串转换为日期:

string myDate = ((TextBox)DetailView1.FindControl("InputDate")).Text.ToString();

4 个答案:

答案 0 :(得分:1)

转换它:

TextBox txtInputDate = (TextBox)DetailView1.FindControl("InputDate");
DateTime dt = DateTime.ParseExact(txtInputDate.Text, "MMMM yyyy", CultureInfo.InvariantCulture);

然后再将其转换为字符串:

txtInputDate.Text = dt.ToString("yyyyMMdd", CultureInfo.InvariantCulture);

答案 1 :(得分:0)

C#非常擅长解析字符串日期,你可以依赖它解析的构建:

string myDateString = ((TextBox)DetailView1.FindControl("InputDate")).Text.ToString();
DateTime myDate;
if (DateTime.TryParse(myDateString, out myDate)) {
    // myDate now contains a proper .NET date.
}

现在你有一个合适的DateTime,你可以用你喜欢的任何格式输出它。

答案 2 :(得分:0)

DateTime test = DateTime.Parse("November 2013");
Console.WriteLine(test.ToString("yyyyMMdd"));

答案 3 :(得分:0)

使用DateTime.ParseExact()方法,如下所示:

var theParsedDate = DateTime.ParseExact(myDate, "MMMM yyyy", 
                                        CultureInfo.InvariantCulture);

现在您可以根据需要使用已解析的日期,将其转换为字符串,将其发送到数据库等。