簡體   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