【发布时间】:2012-10-01 14:38:19
【问题描述】:
我有一个 Web 应用程序,它通过查询字符串将 DateTime 从一个页面传递到另一个页面。它在 IE 和 FireFox 中都运行良好,但每当我在 Google Chrome 中尝试它时都会抛出异常。该程序在以下行阻塞:
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))"
我的格式字符串有什么问题?
【问题讨论】:
-
您希望结果字符串采用什么格式? IE。 2012 年 9 月 12 日或 2012 年 9 月 12 日等
-
@JordanKaye,结果应该是 DateTime 实例,而不是字符串。所以输出真的不涉及格式。
-
我正在尝试将其作为 DateTime 取回。
-
这似乎不是任何标准格式。您可以更改页面的调用者以使用某些标准格式吗?比如ISO 8601例如。
-
是来自 JS 还是来自 C# 的“Wed Oct 03 2012 08:00:00 GMT-0400 (Eastern Daylight Time)”?
标签: c# .net datetime query-string