Reputation: 453
is it possible to convert a string
(date stored as varchar
in database) to datetime
in c#?
eg. i'm having a table which stores dates as varchar and it stores values as example
01/21/14 11:42:36 PM
i want to get the result in the format yyyy-mm-dd
i tried,
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);
also tried below steps:
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");
getting value 1/1/0001 12:00..
in dt
.
what could be the reason? also in which format do i need to pass the date (dt
in above case) to DateTime.TryParseExact(..)
Upvotes: 4
Views: 1202
Reputation: 1961
String date = "01/21/14 11:42:36 PM";
DateTime dt = Convert.ToDateTime(date);
var output = dt.ToString("yyyy-MM-dd");
Upvotes: 0
Reputation: 28747
The second parameter of your call should be the format you're passing. After the datetime is created you can specify the output format:
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");
Upvotes: 5