我需要知道在/ xml中写入/读取DateTime的最佳方式。我应该直接将DateTime写入XML或DateTime.ToString()到XML中。
第二个问题是如何从xml中读取日期元素。可以使用铸造; (DateTime)rec.Element(“Date”)。value 或者我需要像这样解析字符串 DateTime.Parse(rec.Element(“Date”)。value)
答案 0 :(得分:18)
您可以使用LINQ to XML转换XElement
或XAttribute
,是......但不是字符串本身。 LINQ to XML使用标准XML格式,与您的文化设置无关。
样品:
using System;
using System.Xml.Linq;
class Test
{
static void Main()
{
DateTime now = DateTime.Now;
XElement element = new XElement("Now", now);
Console.WriteLine(element);
DateTime parsed = (DateTime) element;
Console.WriteLine(parsed);
}
}
为我输出:
<Now>2011-01-21T06:24:12.7032222+00:00</Now>
21/01/2011 06:24:12
答案 1 :(得分:6)
@Jon Skeet的替代方法是使用"round trip" format将DateTime转换为字符串。这会将其转换为可以保存和加载的格式,而不会丢失任何信息。
string dataToSave = myDateTime.ToString("o");
使用DateTime.Parse()再次转换回来。我链接到的页面有一些示例,向您展示如何转换为字符串格式/从字符串格式转换。您需要做的就是将此字符串存储到XML中。这使您可以更好地控制数据的存储方式(如果您想要更多控制,那么)。
答案 2 :(得分:5)
您可以使用XmlConvert类与字符串进行转换。