在.net中本地化一个时间跨度的“总秒数”

时间:2012-10-02 21:43:59

标签: .net string-formatting globalization timespan

我想将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美元)。

1 个答案:

答案 0 :(得分:2)

您当然可以使用 double 的区域设置感知格式选项来处理数字部分。

// "N" is an example format.  Use what your app needs.
value.ToString("N", CultureInfo.CurrentCulture); 

Windows本地化不支持本地化 second 之类的缩写,因此您必须自己处理该部分。