2

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ドルです)。

4

1 に答える 1

2

確かに、doubleのロケール対応のフォーマットオプションを使用して、数値部分を処理できます。

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

Windowsのローカリゼーションでは、 secondなどの略語のローカライズはサポートされていないため、その部分を自分で処理する必要があります。

于 2012-10-02T21:46:52.783 に答える