2016-08-01 176 views
-3

我有一个XML文件,我从中读取时间戳。当使用.InnerText阅读这些时间戳我会得到这个为每个节点:将字符串从xml转换为DateTime

2016 6 9 15 8 28 

我的目标是到字符串转换成以下格式:

2016-06-09T15:08:28.000000+00:00 

是否有这样做的任何解决方案?

XML例如:

XML example

+0

如果格式总是保持不变,则可以解析该字符串并使用DateTime类的构造函数重载来创建一个您想要的DateTime。请参阅https://msdn.microsoft.com/en-us/library/272ba130(v=vs.110).aspx – Max

+0

您可以尝试使用'DateTime.ParseExact()'方法从中获取DateTime。 – Adwaenyth

回答

0

最好的方法是从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提出的方法! :-)

0

首先,解析年,月,日,时,分,秒从XML为整数,然后使用日期时间的构造函数:

DateTime date = new DateTime(int year, int month, int day, int hour, int minute, int seconds); 

然后使用format strings之一格式化您的日期。

1

如果字符串将始终采用相同格式,则可以使用DateTime.ParseExact来获取DateTime对象。

var result = DateTime.ParseExact(innerText, "yyyy M d H m ss", CultureInfo.InvariantCulture);