C# 显示时间跨度超过24小时的标准方式是什么?
我正在寻找一种在C#和Delphi中正确显示大于24小时的本地化持续时间的方法。我的意思是,DateTime类型通常提供了这样的字符串函数,但时间跨度没有,为什么 我甚至不知道非本地化时间跨度的正确格式是什么。 e、 g.持续2天10小时30分钟。 我发现有些会显示这样的时间跨度,如2.10:30:00或2:10:30:00或2 10:30:00 请帮助,谢谢。有关固定区域性(非本地化): 否则,只需使用myDateTime.ToSortDateString()或.ToLongDateString()。。它将使用:C# 显示时间跨度超过24小时的标准方式是什么?,c#,delphi,timespan,C#,Delphi,Timespan,我正在寻找一种在C#和Delphi中正确显示大于24小时的本地化持续时间的方法。我的意思是,DateTime类型通常提供了这样的字符串函数,但时间跨度没有,为什么 我甚至不知道非本地化时间跨度的正确格式是什么。 e、 g.持续2天10小时30分钟。 我发现有些会显示这样的时间跨度,如2.10:30:00或2:10:30:00或2 10:30:00 请帮助,谢谢。有关固定区域性(非本地化): 否则,只需使用myDateTime.ToSortDateString()或.ToLongDateStrin
System.Threading.Thread.CurrentThread.CurrentUICulture
在这种情况下
或者如果你有什么特别的想法,你可以做
var myCulture = CultureInfo.GetCultureInfo("en-GB");
dt.ToString(myCulture);
编辑
对于时间跨度:
例如:
DateTime dt1 = new DateTime(2012, 7, 17, 12, 30, 0);
DateTime dt2 = new DateTime(2012, 7, 18, 14, 40, 0);
TimeSpan ts = dt2 - dt1;
string s = ts.ToString("G", CultureInfo.InvariantCulture);
更多示例如下:
编辑2:
有关TimeSpan格式字符串的详细信息:
对于固定培养基(非本地化):
否则,只需使用myDateTime.ToSortDateString()或.ToLongDateString()。。它将使用:
System.Threading.Thread.CurrentThread.CurrentUICulture
在这种情况下
或者如果你有什么特别的想法,你可以做
var myCulture = CultureInfo.GetCultureInfo("en-GB");
dt.ToString(myCulture);
编辑
对于时间跨度:
例如:
DateTime dt1 = new DateTime(2012, 7, 17, 12, 30, 0);
DateTime dt2 = new DateTime(2012, 7, 18, 14, 40, 0);
TimeSpan ts = dt2 - dt1;
string s = ts.ToString("G", CultureInfo.InvariantCulture);
更多示例如下:
编辑2:
有关TimeSpan格式字符串的详细信息:
您可以按照,可以找到该规范的PDF。参见第4.4.3节持续时间
然而,在我看来,使用本文中列出的约定相当复杂,因为根据本规范,您需要包括时间间隔发生的上下文:
日历年、日历月、日历周或日历的持续时间
日历日取决于其在日历中的位置。因此
只有在以下情况下,才能评估标称持续时间的确切持续时间:
日历年、日历月、日历周或
使用的日历日是已知的
如果时间跨度发生的实际时刻与您的应用程序无关,那么最好忘记年份和月份部分,只使用格式nndtnnhnnns
。使用标准的TimeSpan
方法应该不太难实现
更新:
进一步阅读,本标准似乎并不适用于您的问题:
持续时间用作时间间隔表示中的一个组件
和循环时间间隔,持续时间的表示是
不受本国际标准的影响
我将把答案留在这里,以避免其他人像我一样走进这个死胡同,或者如果你认为“某种程度上遵循标准”已经足够好了…你可以遵循,可以找到规范的PDF。参见第4.4.3节持续时间
然而,在我看来,使用本文中列出的约定相当复杂,因为根据本规范,您需要包括时间间隔发生的上下文:
日历年、日历月、日历周或日历的持续时间
日历日取决于其在日历中的位置。因此
只有在以下情况下,才能评估标称持续时间的确切持续时间:
日历年、日历月、日历周或
使用的日历日是已知的
如果时间跨度发生的实际时刻与您的应用程序无关,那么最好忘记年份和月份部分,只使用格式nndtnnhnnns
。使用标准的TimeSpan
方法应该不太难实现
更新:
进一步阅读,本标准似乎并不适用于您的问题:
持续时间用作时间间隔表示中的一个组件
和循环时间间隔,持续时间的表示是
不受本国际标准的影响
我将把答案留在这里,以避免其他人像我一样走进这条死胡同,或者如果你认为“某种程度上遵循标准”就足够了……哦,对不起。。我刚意识到你想要它的时间跨度。。不是日期时间。。给我一个mo;-)哦,对不起。。我刚意识到你想要它的时间跨度。。不是日期时间。。给我一个mo;-)