gpt4 book ai didi

c# - DateTime.ParseExact 格式字符串

转载 作者:行者123 更新时间:2023-11-30 20:04:37 26 4
gpt4 key购买 nike

我有一个 Web 应用程序,它通过查询字符串将 DateTime 从一个页面传递到另一个页面。它在 IE 和 FireFox 中都工作得很好,但每当我在谷歌浏览器中尝试它时都会抛出异常。该程序在以下行中阻塞:

startDateTime = Convert.ToDateTime(Request.QueryString["start"]);

所以,我运行了调试器,发现查询字符串中的值为:

Wed Oct 03 2012 08:00:00 GMT-0400 (Eastern Daylight Time)

我得出结论,Convert 无法胜任这项工作,并着手尝试让 DateTime.ParseExact 驯服这头野兽。但是,到目前为止,我还没有找到正确的格式字符串。这是我一直在尝试的代码(不起作用):

DateTime.ParseExact(Request.QueryString["start"], "ddd MMM dd yyyy HH:mm:ss zzz", CultureInfo.InvariantCulture);

此页面是通过第三方组件 (DayPilotCalendar) 调用的一些 JavaScript 从另一个页面调用的。下面是在 DayPilotCalendar 控件上设置的相关属性:

TimeRangeSelectedJavaScript="GB_showPage('Request Magnet Time', '../../../EventAddEdit.aspx?start=' + encodeURIComponent(start) + '&end=' + encodeURIComponent(end))"

我的格式字符串有什么问题?

最佳答案

我是否建议您不要在查询字符串中传递诸如“Wed Oct 03 2012 08:00:00 GMT-0400(东部夏令时)”之类的内容,而只是传递日期的时间戳?例如,new Date().getTime()。 (UTC 中自 1970 年以来的毫秒数)。然后,在 C# 中你可以这样做:

var epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
var dt = epoch.AddMilliseconds(Convert.ToInt64(Request.QueryString["start"]));

无需解析。

关于c# - DateTime.ParseExact 格式字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12675421/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com