【发布时间】:2014-03-01 17:23:28
【问题描述】:
是否可以在c#中将string(数据库中存储为varchar的日期)转换为datetime?
例如。我有一个将日期存储为 varchar 的表,并将值存储为示例
01/21/14 11:42:36 PM
我想得到yyyy-mm-dd格式的结果
我试过了,
CultureInfo enUS = new CultureInfo("en-US");
DateTime d;
DateTime.TryParseExact("01/21/14 11:42:36 PM", "yyyy-mm-dd", enUS, DateTimeStyles.None, out d);
也尝试了以下步骤:
CultureInfo enUS = new CultureInfo("en-US");
DateTime d = Convert.ToDateTime("01/21/14 11:42:36 PM");
string dt = Convert.ToString(d);
DateTime.TryParseExact(dt, "MM/dd/yy hh:mm:ss tt", enUS, DateTimeStyles.None, out d);
var output = d.ToString("yyyy-mm-dd");
在dt 中获取值1/1/0001 12:00..。
可能是什么原因?我还需要以哪种格式将日期(上述情况下为dt)传递给DateTime.TryParseExact(..)
【问题讨论】:
-
DateTime没有具有格式。您传递给TryParseExact的格式是您尝试解析的字符串的格式。 -
“将日期存储为 varchar 的表” 这是一个优先级更高的问题。
-
显然日期不应该存储为 varchar。 MMDDYY 也不是世界上大多数地方的日期格式。您是在寻找一种针对这种特定情况的硬编码解决方案,还是更通用的解决方案?
标签: c# sql sql-server-2008 datetime converter