2

如何将以下字符串转换为DateTimeC#?

Mon Apr 22 07:56:21 +0000 2013

当我尝试使用代码时

Convert.ToDateTime("Mon Apr 22 07:56:21 +0000 2013")

它抛出错误

字符串不被视为有效的 DateTime

4

6 回答 6

4

试试DateTime.ParseExact吧。

例子:

CultureInfo provider = CultureInfo.InvariantCulture;
dateString = "Sun 15 Jun 2008 8:30 AM -06:00";
format = "ddd dd MMM yyyy h:mm tt zzz";
result = DateTime.ParseExact(dateString, format, provider);

更多示例可在http://msdn.microsoft.com/en-us/library/w2sa9yss.aspx获得

于 2013-06-07T07:22:45.157 回答
1

您必须指定输入字符串采用特定格式。请参考这个链接和这个链接

于 2013-06-07T07:23:19.673 回答
1

像这样使用DateTime.ParseExact

string str = "Mon Apr 22 07:56:21 +0000 2013";
DateTime dt = DateTime.ParseExact(str,
                                   "ddd MMM d HH:mm:ss +0000 yyyy",
                                   CultureInfo.InvariantCulture);
于 2013-06-07T07:24:43.850 回答
1

你基本上有两种选择。 DateTime.Parse()DateTime.ParseExact()。喜欢

DateTime parseexactdt = DateTime.ParseExact("Mon Apr 22 07:56:21 +0000 2013",
                                   "ddd MMM d HH:mm:ss +0000 yyyy",
                                   CultureInfo.InvariantCulture);
于 2013-06-07T07:24:52.570 回答
1
string input = "Mon Apr 22 07:56:21 +0000 2013";
string format = "ddd MMM dd HH:mm:ss +ffff yyyy";
DateTime dt;
if(DateTime.TryParseExact(input,format,  CultureInfo.InvariantCulture,
            DateTimeStyles.None,out dt))
{
    // do something with dt
}
于 2013-06-07T07:25:46.240 回答
1

你可以使用这个:

using System;
using System.Globalization;

namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
            CultureInfo cult = CultureInfo.InvariantCulture;

            string txt = "Mon Apr 22 07:56:21 +0000 2013";
            string format = "ddd MMM dd hh:mm:ss zzz yyyy";
            DateTime dt = DateTime.ParseExact(txt, format, cult);

        }
    }
}

如果您从 +06:00 的国家/地区运行程序,您将获得相同日期的 13:56:21

于 2013-06-07T07:29:59.313 回答