繁体   English   中英

通过查询字符串传递 C# DateTime

[英]Passing a C# DateTime via the Query String

我有一个 C# DateTime 对象。 该对象包括日期和时间。 我需要将此信息传递给基于 REST 的服务。 我的问题是,如何格式化 DateTime,以便我可以通过查询字符串传递它,并将其解析回服务器端的 DateTime?

DateTime startDate = GetStartDate();
string url = "http://www.mydomain.com/myservice.svc/[startDateGoesHere]

WebRequest request = HttpWebRequest.Create(url);
request.BeginGetResponse(new AsyncCallback(Service_Completed), request);

谢谢,

只需使用 ToString() 并传递一个格式,例如: startDate.ToString("yyyyMMddHHmmss")

并使用DateTime.ParseExact()解析它

为了准确性和一致性,您可以使用:

string utcDateOut = DateTime.UtcNow.ToString("s", CultureInfo.InvariantCulture);

DateTime utcDateIn = DateTime.ParseExact(utcDateOut, "s", 
                              CultureInfo.InvariantCulture, 
                              DateTimeStyles.AdjustToUniversal);

这将为您提供符合 ISO 8601 的格式,并且使用 UTC 将确保不存在时区等问题。

唯一的缺点是它看起来不像简单的“yyyyMMdd”那么“好”。

我会使用yyyyMMdd作为格式; 不需要进行 URL 编码,并且易于阅读/理解。

在服务器端,您必须调用DateTime.ParseExact(dateString, "yyyyMMdd")来获取日期。

希望这可以帮助。

字符串 s = DateTime ToString (" yyyyMMddHHmmssfff ")

注意:fff 是毫秒(如果不需要,您可以删除 'fff')
然后使用将其转换回 DateTime

日期时间 d = DateTime ParseExact (s, " yyyyMMddHHmmssfff ", CultureInfo . InvariantCulture )

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM