如何在C#中将字符串转换为DateTime?

时间:2014-02-05 10:25:15

标签: c# sql sql-server-2008 datetime converter

是否可以将string(数据库中存储为varchar的日期)转换为c#中的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");

1/1/0001 12:00..中获得值dt

可能是什么原因?我还需要以哪种格式将日期(上述情况中为dt)传递给DateTime.TryParseExact(..)

2 个答案:

答案 0 :(得分:5)

您通话的第二个参数应该是您传递的格式。创建日期时间后,您可以指定输出格式:

CultureInfo enUS = new CultureInfo("en-US");
DateTime d;
DateTime.TryParseExact("01/21/14 11:42:36 PM", "MM/dd/yy hh:mm:ss tt", enUS, DateTimeStyles.None, out d);

var output = d.ToString("yyyy-MM-dd");

答案 1 :(得分:0)

            String date = "01/21/14 11:42:36 PM";
            DateTime dt = Convert.ToDateTime(date);
            var output = dt.ToString("yyyy-MM-dd");