我想将 TimeSpan 格式化为其秒数,但我希望转换能够识别区域设置。例如:
// NOT FUNCTIONAL but illustrates what I mean
String.Format("{0:0.0s}", TimeSpan.FromSeconds(2.5324)) = "2.5s"
String.Format("{0:0s}", TimeSpan.FromMinutes(2)) = "120s"
我可以实现这样的功能:
someTimeSpan.TotalSeconds.ToString("0.0") + "s"
但这假设秒由“s”表示,并且单位应位于数量之后。这可能是跨语言环境的标准,因为它是 SI 的一部分,但也可能不是(例如,即使在美国,某些单位也不是后缀:5 美元是 5 美元)。
最佳答案
您当然可以使用 double 的区域设置感知格式选项来处理数字部分。
// "N" is an example format. Use what your app needs.
value.ToString("N", CultureInfo.CurrentCulture);
Windows 本地化不提供对诸如 second 之类的本地化缩写的任何支持,因此您必须自己处理该部分。
关于.net - 本地化 .net 中时间跨度的 'total seconds',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12698828/