将GMT日期字符串解析为C# DateTime类型

5

我正在使用http://www.eyecon.ro/bootstrap-datepicker/插件来选择日期,在选择日期后,我得到了例如Fri Nov 01 2013 00:00:00 GMT+0100的格式。

1) 如果我使用格式yyyy-mm-dd设置插件,为什么会得到那种日期格式?

2) 如何将Fri Nov 01 2013 00:00:00 GMT+0100解析为格式为yyyy-mm-dd的DateTime?


我假设datepicker返回一个Date对象。将其作为Unix时间戳传递是否更方便? new Date().getTime()/1000。https://dev59.com/jXI-5IYBdhLWcg3wxruQ - Johan
2个回答

11
你可以使用"ddd MMM dd yyyy HH:mm:ss 'GMT'K"格式并结合DateTime.ParseExact来使用。
string s = "Fri Nov 01 2013 00:00:00 GMT+0100";
DateTime dt = DateTime.ParseExact(s, "ddd MMM dd yyyy HH:mm:ss 'GMT'K",
                       CultureInfo.InvariantCulture);
Console.WriteLine(dt);

输出结果将是:

10/31/2013 11:00:00 PM

这里有一个演示

要获取更多信息,请查看:


它能工作 - 但是你能告诉我关于问题1)的情况吗?这个提供的日期格式字符串是否取决于用户的浏览器语言/操作系统语言。我正在尝试弄清楚这一点,因为我只想向服务器发送一个日期格式。 - Tony

0
    public string GmtDateTimeString { get; set; }
     
    public static readonly string[] DateFormats =
    {
                "MM/dd/yyyy hh:mm:ss tt",
                "MM/dd/yyyy HH:mm:ss"
    };

    public bool TryParseUtcDate(out DateTime d)
    {
                if (DateTime.TryParseExact(GmtDateTimeString, DateFormats,
                    CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal, out d))
                {
                    return true;
                }
    
                if (DateTime.TryParse(GmtDateTimeString, CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal, out d))
                {
                    return true;
                }
    
                d = DateTime.MinValue;
    
                return false;
   }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接