c# - 如何将格式为月/日/年时间的字符串化日期值转换为日期时间?

标签 c# datetime datetime-format

我有一个包含两个 DateTime 成员的类。
但是,当我尝试将表示日期的“人类可读”值分配给 DateTime 成员时,它拒绝它并显示消息“字符串未被识别为有效的 DateTime”。
失败的代码行是:

md.BeginDate = DateTime.Parse(reader.GetValue(5).ToString());
在上下文中,显示我试图从 DateTime 的字符串表示形式转换的值:
enter image description here
基于这里的第一个和接受的答案 [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); 
...但结果同样可耻。
更新
基于 this ,我尝试了以下方法:
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
事实证明,这对我来说是一个非常愚蠢的疏忽。当我逐步通过它时,我看到数据库中的日期(文本)值是空的。所以这段代码“有效”(不抛出异常):
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 然后它工作正常。

关于c# - 如何将格式为月/日/年时间的字符串化日期值转换为日期时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65946734/

相关文章:

python - 使用 strftime 格式化字典中的 datetime.timedelta 对象

python - 全日历和 django

android - 如何获取月和日的语言环境日期格式

javascript - 如何转义 date-fns 格式的模式字母

c# - FileSystemWatcher InternalBufferOverflow

c# - c#中有 "split list"方法吗?

c# - INotifyPropertyChanged 在处理大量数据时陷入困境

c# - 获取 NumericUpDown 的值会移动插入符位置,我可以停止吗?

linq - 为什么我不能在 LinQ 查询中将可为空的 DateTime 转换为字符串?

c# - 将 double 转换为日期时间?