当前位置:  开发笔记 > 编程语言 > 正文

错误是什么:在反序列化过程中'字符串未被识别为有效的DateTime'?

如何解决《错误是什么:在反序列化过程中'字符串未被识别为有效的DateTime'?》经验,为你挑选了2个好方法。

我几天前已经为你回答了这个问题.

在您的课堂上,您需要进行翻译:

static readonly DateTime epoch = new DateTime(1970, 1, 1);
static long SerializeDateTime(DateTime value)
{
    return (long)((value - epoch).TotalSeconds);
}
static DateTime DeserializeDateTime(long value)
{
    return epoch.AddSeconds(value);
}

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

[XmlElement("created"), Browsable(false)]
[EditorBrowsable(EditorBrowsableState.Never)]
public long CreateDateInt64 {
    get {return SerializeDateTime(CreateDate);}
    set {CreateDate = DeserializeDateTime(value);}
}

CreateDateInt64是使用的版本XmlSerializer- 但是在调用时,它执行转换并将值传递给CreateDate(XmlSerializer由于属性而被忽略).

这意味着你DateTime CreateDate在类上有一个,在xml中有一个数字.



1> Marc Gravell..:

我几天前已经为你回答了这个问题.

在您的课堂上,您需要进行翻译:

static readonly DateTime epoch = new DateTime(1970, 1, 1);
static long SerializeDateTime(DateTime value)
{
    return (long)((value - epoch).TotalSeconds);
}
static DateTime DeserializeDateTime(long value)
{
    return epoch.AddSeconds(value);
}

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

[XmlElement("created"), Browsable(false)]
[EditorBrowsable(EditorBrowsableState.Never)]
public long CreateDateInt64 {
    get {return SerializeDateTime(CreateDate);}
    set {CreateDate = DeserializeDateTime(value);}
}

CreateDateInt64是使用的版本XmlSerializer- 但是在调用时,它执行转换并将值传递给CreateDate(XmlSerializer由于属性而被忽略).

这意味着你DateTime CreateDate在类上有一个,在xml中有一个数字.



2> Joel Coehoor..:

这看起来像是一个unix格式的时间戳给我.Xml"date"数据类型在格式应该是非常明确的:

yyyy-MM-ddTHH:mm:ss.fffffff +时区偏移量

例如: 2009-02-09T10:01:23.3212345+06:00

推荐阅读
刘美娥94662
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有