我使用的序列化包含日期时间的对象第三方服务。在某些类某些日期时间属性序列与一个字符串象偏移:WCF XMLserialization矛盾与日期时间与格林尼治标准时间偏移
2012-03-22T15:31:18 -05:00
在某些类某些日期时间属性序列化到一个字符串没有偏移,如:
2012-03-24T00:00:00
我认为,服务期待一个日期时间偏移。 有什么办法可以强制类序列化日期时间偏移?
我使用的序列化包含日期时间的对象第三方服务。在某些类某些日期时间属性序列与一个字符串象偏移:WCF XMLserialization矛盾与日期时间与格林尼治标准时间偏移
2012-03-22T15:31:18 -05:00
在某些类某些日期时间属性序列化到一个字符串没有偏移,如:
2012-03-24T00:00:00
我认为,服务期待一个日期时间偏移。 有什么办法可以强制类序列化日期时间偏移?
的原因,一些日期时间序列与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);
}
我希望它可以帮助别人