首页 > 解决方案 > 从 C# 中的两个字符串变量转换为 DateTime

问题描述

我想将两个字符串变量转换为 DateTime 变量。所以像这样的事情......

string day = "05";
string month = "11";
Convert.ToDateTime(day + month + "0000");

然后将其上传到 SQL 服务器 smalldatetime 数据类型。有没有办法做到这一点?我见过一些人使用 ParseExact,但他们使用完美的日期格式,从来没有像我想要的那样从两个字符串创建它。有谁知道如何做到这一点?

标签: c#stringdatedatetime

解决方案


你可以试试这个:

string day   = "05";
string month = "11";
string year  = "0001";
DateTime dt  = 
 DateTime.ParseExact(day + "-" + month + "-" + year, "dd-MM-yyyy", CultureInfo.InvariantCulture);

但年份不能为 0。

'0001' 年份仅代表第一年。所以你可以说到这个日期已经过去了 0 年。

更新

正如下面提到的吉米

smalldatetime从 1900-01-01 到 2079-06-06。OP 在转换之前必须安全检查这个范围。

在将字符串解析为日期时必须小心,如果您使用smalldatetime,则您的范围受限于“1900-01-01 到 2079-06-06”,因此您DateTime当时不能有 0001 年。


推荐阅读