我即将获取列表的子字符串。这是我的LINQ。 (从第三方服务中读取XML。)
var Payment = from Main in xml.Descendants(ns + "OTA_AirBookRQ")
select new
{
DepartureDate = Main
.Elements(ns+"Segment")
.Elements(ns+"DepartureDate")
.ToList(),
}
Payment.DepartureDate[0].Value
返回"2012-11-14T19:05:00"
的日期。我需要得到的只是"19:05:00"
。我如何实现这一目标?
如果您需要更多信息,请与我们联系。
答案 0 :(得分:3)
DateTime.Parse("2012-11-14T19:05:00").ToString("HH:mm:ss");
答案 1 :(得分:0)
使用DateTime.Parse(dateString)
方法执行此操作更有意义,但如果必须使用子字符串,只需转到:string.substring(firstPos, length);
(在您的情况下 - 假设您的日期字符串名为strDate:{{1 }}
子字符串:http://msdn.microsoft.com/en-us/library/system.string.substring(v=vs.100).aspx
日期时间解析:http://msdn.microsoft.com/en-us/library/1k1skd40.aspx
答案 2 :(得分:0)
首先,如果您需要的是从整个元素集合中一个值,您可以简化查询:
string paymentDateTimeText =
xml
.Descendants(ns + "OTA_AirBookRQ")
.Elements(ns+"Segment")
.Elements(ns+"DepartureDate")
.First()
.Value;
也就是说,不需要为转换后的(.ToList()
)集合创建内存中的副本(.Select(…)
)。在您的情况下,只需获取.First()
XML元素并检索其.Value
即可。
旁注:
.Descendants(…).Elements(…).Elements(…).First()
可以简化为.SelectSingleNode(…)
方法的单次调用。
最后,@L.B's answer演示了如何从日期时间字符串中提取时间组件,所以让我们在这里做同样的事情:
DateTime paymentTime = DateTime.Parse(paymentDateTimeText).ToString("HH:mm:ss");