Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 您能为日期时间的XmlSerialization指定格式吗?_C#_Xml_Serialization - Fatal编程技术网

C# 您能为日期时间的XmlSerialization指定格式吗?

C# 您能为日期时间的XmlSerialization指定格式吗?,c#,xml,serialization,C#,Xml,Serialization,我需要为XML文件将datetime序列化/反序列化为yyyyMMdd格式。是否有一个属性/解决方法可供我使用?不,没有。如果是这种格式,那么就XML模式而言,它不是有效的日期时间 您所能做的最好工作如下: [XmlIgnore] public DateTime DoNotSerialize {get;set;} public string ProxyDateTime { get {return DoNotSerialize.ToString("yyyyMMdd");} set

我需要为XML文件将datetime序列化/反序列化为yyyyMMdd格式。是否有一个属性/解决方法可供我使用?

不,没有。如果是这种格式,那么就XML模式而言,它不是有效的日期时间

您所能做的最好工作如下:

[XmlIgnore]
public DateTime DoNotSerialize {get;set;}

public string ProxyDateTime {
    get {return DoNotSerialize.ToString("yyyyMMdd");}
    set {DoNotSerialize = DateTime.Parse(value);}
}
#数据类型应提供您需要的:

[XmlElement(DataType="date")]    
public DateTime Date1 {get;set;}

这将使Date1属性序列化为正确的格式。

否,问题是我需要将其序列化为非标准xml日期格式。被接受的解决方案就是我想要的。这对我不起作用,会导致生成错误。[xmlement(DataType=“date”)]有效。谢谢。解决了我的问题。我试图删除时间部分。干杯如果你需要YYYY-MM-DD,效果非常好,我实际上需要DD/MM/YYYY,Doh!值得注意的是:两个get/set都必须存在。我花了半个小时调试为什么我的属性没有被序列化。事实证明我没有“设置”,因为我对自己说,“我永远不会改变这个值;为什么要费心写一个集合?@spamguy:XmlSerializer只处理公共get和公共set的公共属性。您可以操作变量的getter和setter。例如,我有一个enum Sex{Unknown,Female,Male},我有一个字符串设置器,它将t m格式化为Male,将f格式化为女性。xml序列化程序还编写了完整枚举名的f和m inseatd。工作很好,但这几乎没有实际用途。