c# - 如何将月/日/年时间格式的字符串化日期值转换为日期时间?
问题描述
我有一个包含两个 DateTime 成员的类。
但是,当我尝试将表示日期的“人类可读”值分配给 DateTime 成员时,它会拒绝它并显示消息“字符串未被识别为有效的 DateTime”。
失败的代码行是:
md.BeginDate = DateTime.Parse(reader.GetValue(5).ToString());
在上下文中,显示我试图从 DateTime 的字符串表示形式转换的值:
基于这里的第一个和接受的答案 [https://stackoverflow.com/questions/2193012/string-was-not-recognized-as-a-valid-datetime-format-dd-mm-yyyy],我也试过这个:
md.BeginDate = DateTime.ParseExact(reader.GetValue(6).ToString(), "MM/dd/yyyy", null);
...但同样可耻的结果。
更新
基于此,我尝试了以下方法:
CultureInfo provider = CultureInfo.InvariantCulture;
string format = "yyyy-MM-dd HH:mm:ss.ffffff";
. . .
DateTime.ParseExact(dateString, format, provider);
...但得到相同的结果。
"dateValAsStr" 的值为2021-01-21 11:25:56.9608384
更新 2
事实证明,这对我来说是一个非常愚蠢的疏忽。当我单步执行时,我看到数据库中的 Date (TEXT) 值是空的。所以这段代码“有效”(不抛出异常):
CultureInfo provider = CultureInfo.InvariantCulture;
string format = "yyyy-MM-dd HH:mm:ss.fffffff";
. . .
string qry = "SELECT LocationName, Address1, City, StateOrSo, PostalCode, " +
"BeginDate, EndDate, MapDetailNotes, Latitude, Longitude " +
"FROM CartographerDetail " +
"WHERE FKMapName = @FKMapName";
. . .
dateValAsStr = reader.GetValue(5).ToString().Trim();
if (! String.IsNullOrWhiteSpace(dateValAsStr))
{
md.BeginDate = DateTime.ParseExact(dateValAsStr, format, provider).Date;
}
dateValAsStr = reader.GetValue(6).ToString().Trim();
if (!String.IsNullOrWhiteSpace(dateValAsStr))
{
md.EndDate = DateTime.ParseExact(dateValAsStr, format, provider).Date;
}
解决方案
你给出的简单例子是这样的:
string dateString = "2021-01-21 11:25:56.9608384";
CultureInfo provider = CultureInfo.InvariantCulture;
string format = "yyyy-MM-dd HH:mm:ss.fffffff";
DateTime result = DateTime.ParseExact(dateString, format, provider);
请注意,秒的小数位数是7
,但您format
只有6
f
s。
如果您更改为7
f
s 那么它工作正常。
推荐阅读
- sql - SQL TOP 1 在子查询中使用时返回 null
- gradle - Gradle - uploadArchives 生成的快照与 createJar 不同
- html - 如何以正确的方式设置 flexbox 项目的样式
- javascript - 如何从 php 循环中使用 javascript/jquery 获取动态 id
- ubuntu - 如何使用 Ubuntu 18.04 配置故障转移 ip?
- java - 如何使用 javaparser 获取类级变量名?
- dart - Flutter:从内容中获取渲染文本
- vba - 查找和删除语句的适当错误控制
- python - 如何在熊猫中进行数据框的交集
- python-3.x - 有人可以帮助我了解以下代码的列表理解吗?