c# - 将年份字符串(即 '2005')转换为日期时间值

标签 c# asp.net datetime valueconverter

我正在创建一个简单的输入表单来创建一个帐户。表单上有一个公司成立年份的输入字段,这是一个简单的文本框,用户可以在其中输入年份,即 2005 年。

但是,尽管将文本框条目转换为日期时间,但在尝试将其插入日期时间的数据库字段时,仍会抛出错误...

myCompanyAccount.Founded = Convert.ToDateTime(this.TxtCompanyFounded.Text);

有没有一种方法可以将年份输入(即 2005 年)转换为日期时间,以便将其插入数据库...?提前致谢!

最佳答案

它的发生只是因为 2005不是标准的日期和时间格式,这就是原因 Convert.ToDateTime 会失败。

您可以使用 DateTime.TryParseExact DateTime.ParseExact 方法来解析您的自定义日期和时间,例如;

string s = "2005";
DateTime dt;
if(DateTime.TryParseExact(s, "yyyy", CultureInfo.InvariantCulture,
                          DateTimeStyles.None, out dt))
{
     Console.WriteLine(dt);
}

dt将是 01/01/2005 00:00:00 (当然,它的表示取决于您当前在 .ToString() 方法中的文化)

这里是一个 demonstration .

关于c# - 将年份字符串(即 '2005')转换为日期时间值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23470508/

相关文章:

c# - ASP.NET Core 货币格式无法正常工作

c# - "For"循环增量无法正常工作。为什么?

c# - 带有 OLEDB 的 C# 中的 Excel 前缀字符在更新时导致 "Data type mismatch in criteria expression"错误

c# - 是否有一种正确的方法来菊花链式连接类并以正确的方式调用它?

c# - 将通用列表绑定(bind)到下拉列表

c# - 在 ApiController 中添加自定义响应 header

c# - GridView 分页不起作用?

vb.net - 将字符串转换为日期时间

mysql - 将 2 周添加到日期 SQL

mysql - 在 SQL 查询中从 CURTIME() 选择分钟