我有以下字符串,
2015年9月24日星期四00:00:00 GMT + 0530(IST)
我尝试了以下但是它很适合。
var twDate = DateTime.Parse("Thu Sep 24 2015 00:00:00 GMT+0530 (IST) ");
无法使用替换,因为IST无法修复。任何想法?
答案 0 :(得分:2)
您需要使用普通字符串操作修剪时区缩写,然后指定自定义日期和时间格式字符串。例如:
// 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);
请注意CultureInfo.InvariantCulture
在这里的使用 - 您几乎肯定 想要使用当前线程的当前文化进行解析。
答案 1 :(得分:0)
如果您的字符串始终具有相同的格式和长度,您可以使用它来获取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);