将字符串从xml转换为DateTime
问题描述:
我有一个XML文件,我从中读取时间戳。当使用.InnerText
阅读这些时间戳我会得到这个为每个节点:将字符串从xml转换为DateTime
2016 6 9 15 8 28
我的目标是到字符串转换成以下格式:
2016-06-09T15:08:28.000000+00:00
是否有这样做的任何解决方案?
XML例如:
答
最好的方法是从XML获取日期的每个组件。如果你想开始使用InnerText属性,请尝试使用:
var input = "2016 6 9 15 8 28 ";
var parts = input.Split(new char[] { ' ' },
StringSplitOptions.RemoveEmptyEntries)
.Select(n => Int32.Parse(n)).ToArray();
var dt = new DateTime(parts[0], parts[1], parts[2], parts[3], parts[4], parts[5]);
我更喜欢上面Alex提出的方法! :-)
答
首先,解析年,月,日,时,分,秒从XML为整数,然后使用日期时间的构造函数:
DateTime date = new DateTime(int year, int month, int day, int hour, int minute, int seconds);
然后使用format strings之一格式化您的日期。
答
如果字符串将始终采用相同格式,则可以使用DateTime.ParseExact来获取DateTime对象。
var result = DateTime.ParseExact(innerText, "yyyy M d H m ss", CultureInfo.InvariantCulture);
如果格式总是保持不变,则可以解析该字符串并使用DateTime类的构造函数重载来创建一个您想要的DateTime。请参阅https://msdn.microsoft.com/en-us/library/272ba130(v=vs.110).aspx – Max
您可以尝试使用'DateTime.ParseExact()'方法从中获取DateTime。 – Adwaenyth