c# - 从 C# 中的两个字符串变量转换为 DateTime
问题描述
我想将两个字符串变量转换为 DateTime 变量。所以像这样的事情......
string day = "05";
string month = "11";
Convert.ToDateTime(day + month + "0000");
然后将其上传到 SQL 服务器 smalldatetime 数据类型。有没有办法做到这一点?我见过一些人使用 ParseExact,但他们使用完美的日期格式,从来没有像我想要的那样从两个字符串创建它。有谁知道如何做到这一点?
解决方案
你可以试试这个:
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 年。
推荐阅读
- flutter - 如何在 futureBuilder 中使用“toIso8601String”
- apache-kafka - 使用 Apache Kafka 作为 FTP 的替代方案
- sql - sql server 中的上限和综合服务器有什么区别
- jquery - 滚动时下拉菜单不会保持原位
- javascript - 如何在谷歌图表中显示两个不同的工具提示
- python - 如何在字典中附加键值?
- ruby-on-rails - Mongo 一次查询返回
- java - 如何避免在单例模式中使用 volatile 的性能开销?
- r - 是否有一个 R 函数来计算行中的值超过 0
- python - 页面在尝试获取数据时给出 403 响应