我有一个来自数据库的字符串,但我不确定它是否是有效的日期时间。首先我试图验证它是否为空,如果不为空,我想安全地将其转换为DateTime,因为我不确定row[“a”].ToString是否为有效的DateTime
output.limitExpiryDate = row["a"] == DBNull.Value ? DateTime.Now : "something to convert here";
有人知道吗?
zpqajqem1#
您可以使用DateTime.TryParse:
DateTime.TryParse
output.limitExpiryDate = DateTime.Now; DateTime limitExpiryDate; if(row["a"] != DBNull.Value && DateTime.TryParse(row.Field<string>("a"), out limitExpiryDate)) output.limitExpiryDate = limitExpiryDate;
如果它是一个可为空的DateTime列,则可以使用支持可为空类型的Field method:
DateTime
Field
DateTime? limitExpiryDate = row.Field<DateTime?>("a"); if(limitExpiryDate.HasValue) output.limitExpiryDate = limitExpiryDate.Value;
gcmastyq2#
CultureInfo provider = CultureInfo.InvariantCulture; var format = "yyyy-MM-dd"; output.limitExpiryDate = row["a"] == DBNull.Value ? DateTime.Now : DateTime.ParseExact(row["a"], format, provider);
gg0vcinb3#
大概是这样的
DateTime date = DateTime.Now; if (row["a"] != null && row["a"] != DBNull.Value) { if (!DateTime.TryParse(row["a"], out date)) date = DateTime.Now; } output.limitExpiryDate = date;
或者,如果您知道row["a"]的日期时间格式,则可以使用TryParseExact并指定format。
row["a"]
TryParseExact
k10s72fa4#
你可以用这个。它对任何日期格式都给予。它对我很有效。
public static DateTime? ToDateTime(this string value) { if (string.IsNullOrEmpty(value)) { return null; } return Convert.ToDateTime(value); }
4条答案
按热度按时间zpqajqem1#
您可以使用
DateTime.TryParse
:如果它是一个可为空的
DateTime
列,则可以使用支持可为空类型的Field
method:gcmastyq2#
gg0vcinb3#
大概是这样的
或者,如果您知道
row["a"]
的日期时间格式,则可以使用TryParseExact
并指定format。k10s72fa4#
你可以用这个。它对任何日期格式都给予。它对我很有效。