我必须在DateTime中转换下面的字符串。我已经使用了以下代码,但它没有用。
DateTime created = DateTime.ParseExact("Sun Feb 23 2014 00:00:00 GMT+0550", "ddd mmm d yyyy HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture);
我必须在日期时间内转换的字符串是 -
Sun Feb 23 2014 00:00:00 GMT+0550
答案 0 :(得分:1)
我会将其解析为DateTimeOffset
而不是DateTime
- 毕竟,这是您获得的数据。假设使用GMT+...
指定总是,您可以使用格式字符串"ddd MMM d yyyy HH:mm:ss 'GMT'zzz"
。特别要注意:
MMM
缩写为月份名称,而不是mmm
'GMT'
将始终匹配字母'GMT'zzz
是UTC偏移量,包括分钟数。它会用冒号格式化,但显然它很宽松,没有指定冒号。示例代码:
using System;
using System.Globalization;
class Test
{
static void Main()
{
var dto = DateTimeOffset.ParseExact
("Sun Feb 23 2014 00:00:00 GMT+0550",
"ddd MMM d yyyy HH:mm:ss 'GMT'zzz",
CultureInfo.InvariantCulture);
Console.WriteLine(dto); // 23/02/2014 00:00:00 +05:50
}
}
答案 1 :(得分:1)
您需要大写月份和'GMT'zzz
DateTime created = DateTime.ParseExact("Sun Feb 23 2014 00:00:00 GMT+0550"
, "ddd MMM dd yyyy HH:mm:ss 'GMT'zzz"
, System.Globalization.CultureInfo.InvariantCulture);
答案 2 :(得分:1)
试试这个:
DateTime created = DateTime.ParseExact("Sun Feb 23 2014 00:00:00 GMT+0550",
"ddd MMM d yyyy HH:mm:ss 'GMT'zzz",
System.Globalization.CultureInfo.InvariantCulture);