这是我的输入:
55
这是我想要的输出:
PT55H
C# 中是否有一个内置类可以将时间跨度转换为:TimeSpan.TryParse(55)
或作为带小时的字符串“55”转换为 ISO8601 格式的字符串?
TimeSpan
您可以使用静态TimeSpan.FromHours
方法将数字转换为 a 。例如var ts = TimeSpan.FromHours(55.0);
.
如果你总是想要只用小时表示的时间,在 ISO 系统中,也许你可以简单地说var isostring = String.Format("PT{0}H", ts.TotalHours);
。
同事刚刚为我找到了这个:
TimeSpan start = new TimeSpan(int.Parse(txtStartHours.Text), 0, 0);
durationNode.Element("StartTime").Value = XmlConvert.ToString(start);
它似乎将其转换为PT2D7H
,但由于我在XMLConvert.ToTimeSpan().TotalHours
其他地方使用,它应该不会造成任何问题!