如何将整数转换为ISO8601 TimeSpan?

时间:2012-09-24 19:27:17

标签: c# parsing datetime

这是我的意见:

55

这是我想要的输出:

PT55H

C#中是否有内置类将时间跨度转换为:TimeSpan.TryParse(55)或字符串“55”,将小时数转换为ISO8601格式的字符串?

2 个答案:

答案 0 :(得分:1)

您可以使用静态TimeSpan方法将数字转换为TimeSpan.FromHours。例如var ts = TimeSpan.FromHours(55.0);

如果您总是希望时间仅以小时为单位,那么在ISO系统中,您可以简单地说var isostring = String.Format("PT{0}H", ts.TotalHours);

答案 1 :(得分:0)

Coworker刚刚为我找到了这个:

TimeSpan start = new TimeSpan(int.Parse(txtStartHours.Text), 0, 0); 
durationNode.Element("StartTime").Value = XmlConvert.ToString(start); 

它似乎将其转换为PT2D7H,但由于我在其他地方使用XMLConvert.ToTimeSpan().TotalHours,因此不会导致任何问题!