2016-08-01 177 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);