Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 显示时间跨度超过24小时的标准方式是什么?_C#_Delphi_Timespan - Fatal编程技术网

C# 显示时间跨度超过24小时的标准方式是什么?

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

我正在寻找一种在C#和Delphi中正确显示大于24小时的本地化持续时间的方法。我的意思是,DateTime类型通常提供了这样的字符串函数,但时间跨度没有,为什么

我甚至不知道非本地化时间跨度的正确格式是什么。 e、 g.持续2天10小时30分钟。 我发现有些会显示这样的时间跨度,如2.10:30:00或2:10:30:00或2 10:30:00

请帮助,谢谢。

有关固定区域性(非本地化):

否则,只需使用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格式字符串的详细信息:

对于固定培养基(非本地化):

否则,只需使用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;-)