簡體   English   中英

如何將WCF樣式格式的日期字符串(即“ / Date(1342210377000)/”)轉換為c#DateTime?

[英]How can I convert a WCF style formatted date string i.e. “/Date(1342210377000)/” to c# DateTime?

一個ajax請求以WCF格式發送日期值? 這是一個轉換為字符串的javascript日期對象,WCF可以使用DataContractSerializer對其進行反序列化。

"/Date(1342210377000)/"

客戶端曾經將這些數據發送到WCF服務,但是現在將其發送到asp.net mvc控制器。 有誰知道我可以在不執行string.replace操作的情況下將該字符串反序列化為ac#DateTime嗎? 我可以利用現有的.NET序列化程序嗎? 我看過使用DataContractSerializer,但它的readobject方法需要一個流或xmlreader。 我不知道如何將modelbindercontext.valueprovider值轉換為序列化程序可以使用的流對象。 如果有人知道如何正確轉換該字符串,我將很樂意學習如何進行轉換。 感謝您提供的任何提示,技巧,代碼,鏈接等...

您可以使用DataContractJsonSerializer將其轉換為DateTime值:

var str = "\"/Date(1342210377000)/\"";
var dcjs = new DataContractJsonSerializer(typeof(DateTime));
var ms = new MemoryStream(Encoding.UTF8.GetBytes(str));
var dt = dcjs.ReadObject(ms);
Console.WriteLine(dt);
DateTime.ToUniversalTime()

舉例來說,這將使您的輸出格式為“ YYYY-MM-DD hh:mm:ss”,而不是那樣,然后讓您的C#代碼進行所需的格式化。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM