I have following string ,
Thu Sep 24 2015 00:00:00 GMT+0530 (IST)
I tried with following but it's faling.
var twDate = DateTime.Parse("Thu Sep 24 2015 00:00:00 GMT+0530 (IST) ");
Can not use replace , as IST wont be fixed. Any Ideas?
I have following string ,
Thu Sep 24 2015 00:00:00 GMT+0530 (IST)
I tried with following but it's faling.
var twDate = DateTime.Parse("Thu Sep 24 2015 00:00:00 GMT+0530 (IST) ");
Can not use replace , as IST wont be fixed. Any Ideas?
You need to trim the time zone abbreviation off using normal string operations, then specify a custom date and time format string. For example:
// After trimming
string text = "Thu Sep 24 2015 00:00:00 GMT+0530";
var dto = DateTimeOffset.ParseExact(
text,
"ddd MMM d yyyy HH:mm:ss 'GMT'zzz",
CultureInfo.InvariantCulture);
Console.WriteLine(dto);
Note the use of CultureInfo.InvariantCulture
here - you almost certainly don't want to parse using the current thread's current culture.
If your string always has the same format and length, you could use this to get UTC:
String dtstr = "Thu Sep 24 2015 00:00:00 GMT+0530 (IST)";
int zoneMin = int.Parse(dtstr.Substring(29, 2)) * 60 + int.Parse(dtstr.Substring(31, 2));
if (dtstr.Substring(28, 1) == "+") zoneMin = -zoneMin;
DateTime dt = DateTime.Parse(dtstr.Substring(0, 24)).AddMinutes(zoneMin);