【问题标题】:Format Conversion happening for date but don't know why?日期发生格式转换但不知道为什么?
【发布时间】:2011-01-20 06:40:50
【问题描述】:

我遇到了一个奇怪的问题。首先,当我在 XML 中插入一条记录时,该记录包含绑定到 XAML 中的 DatePicker 的日期属性。元素采用这种形式 2011-01-22T00:00:00

然后是一个更新页面,里面填满了从 XML 读取的值。我正在阅读这样的日期 Date = DateTime.Parse(record.Element("Date").Value;

现在当我单击更新时,并像这样替换日期值 record.Element("Date").Value = Date。格式更改和日期元素是这样的 22-01-2011 00:00:00

【问题讨论】:

  • 那么你想知道什么?
  • 我需要知道,这应该发生吗?由于这种格式更改,我无法使用此代码 Date = record.Element("Date") != null && !record.Element("Date").Nodes().Any() ? null : (DateTime?)record.Element("Date") 抛出 formatException 说“字符串的日期格式不正确”。

标签: wpf xml xaml datetime datepicker


【解决方案1】:

我找到了这种格式转换的原因。实际上,起初我直接将日期插入到 xml 中,例如 doc.Element("root").Add(new XElement("Date", dt))),但是在更新时,日期首先转换为字符串,然后更新/添加到 XML。

结论

  • 将 DateTime 直接插入 XML 有 SortableDateTimePattern (基于 ISO 8601)使用当地时间; 使用这种格式模式, 格式化或解析操作 始终使用不变的文化
  • 在插入时 DateTime.ToString() 转换 DateTime 对象的值与其 等效的字符串表示。 (覆盖 ValueType ..::.ToString ()()().)

谢谢大家。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-20
    • 2021-10-08
    • 1970-01-01
    • 2015-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多