在日期时间中转换特定类型的刺痛

时间:2014-02-27 10:21:05

标签: c# asp.net-mvc datetime

我必须在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

3 个答案:

答案 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);