2012-03-22 76 views
1

我使用的序列化包含日期時間的對象第三方服務。在某些類某些日期時間屬性序列與一個字符串象偏移:WCF XMLserialization矛盾與日期時間與格林尼治標準時間偏移

2012-03-22T15:31:18 -05:00

在某些類某些日期時間屬性序列化到一個字符串沒有偏移,如:

2012-03-24T00:00:00

我認爲,服務期待一個日期時間偏移。 有什麼辦法可以強制類序列化日期時間偏移?

回答

1

的原因,一些日期時間序列與GMT偏移和一些不具有做的Kind屬性的日期時間

DateTime是否有DateTime.Now創建()設置其Kind屬性爲DateTimeKind.Local DateTime是否與DateTime.Parse創建()設置它們的Kind屬性作爲DateTimeKind.Unspecified

功能的ToString(「O」)可以被用來序列出來GMT格式。未指定類型不知道偏移量,因此它被跳過。

不明種類:2012-03-24T00:00:00 本地類:2012-03-22T15:31:18 -05:00

有一個叫SpecifyKind功能,但只工作,如果那種是不是設置爲未指定。

解決方法是使用以下構造函數創建DateTime: DateTime(Year,Month,Day,Hour,Minute,Second,DateTimeKind.Local);

http://msdn.microsoft.com/en-us/library/t882fzc6.aspx

我創建了這個很短的擴展方法:

public static DateTime SpecifyKindLocal(this DateTime datetime) 
    { 
     return new DateTime(datetime.Year, datetime.Month, datetime.Day, datetime.Hour, datetime.Minute, datetime.Second, DateTimeKind.Local); 
    } 

我希望它可以幫助別人

相關問題