2012-09-24 69 views
1

这是我输入:如何将整数转换为ISO8601 TimeSpan?

55 

这是我想要的输出:

PT55H 

有一个内置在C#类,一个时间跨度转换为:TimeSpan.TryParse(55)或字符串“55”与几小时变成ISO8601格式化的字符串?

+0

可能的重复http://stackoverflow.com/questions/2906022/c-sharp-timespan-to-iso8601-format-string – msmucker0527

回答

0

同事刚刚发现这个对我来说:

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

似乎将其转换为PT2D7H,但因为我使用XMLConvert.ToTimeSpan().TotalHours其他地方,它不应该引起任何问题!

1

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

如果你总是只想用小时表示的时间,在ISO系统中,也许你可以简单地说var isostring = String.Format("PT{0}H", ts.TotalHours);

+0

这将工作,但我想要的东西通用的任何时间 – Codeman

+0

但它不工作任何时间跨度?我以为你想要一个小时的格式。像'PT55H'(55小时)而不是'P2DT7H'(2天7小时)。 –

+0

理想情况下,我想只有几个小时,但是我的要求是通用的,似乎我别无选择,只能处理自己的字符串,或者允许它使用P2DT7H格式。 – Codeman