有没有办法告诉用户是否更喜欢公制或帝国而不在C#中询问?

Ins*_*ter 6 .net c# globalization localization internationalization

现在我正在做:

bool UseMetricByDefault() {
    return TimeZone.CurrentTimeZone.GetUtcOffset(DateTime.Now).TotalHours >= 0;
}
Run Code Online (Sandbox Code Playgroud)

这有助于区分美国与欧洲和亚洲,但它忽略了南美洲.

有没有更好的办法?

Wim*_*dse 20

使用命名空间中的RegionInfoSystem.Globalization:

bool isMetric = RegionInfo.CurrentRegion.IsMetric;
Run Code Online (Sandbox Code Playgroud)

如果需要特定区域,可以使用以下方法之一:

// from a CultureInfo
CultureInfo culture = ...;
RegionInfo r = new RegionInfo(culture.Name);

// from a string
RegionInfo r = new RegionInfo("us");
Run Code Online (Sandbox Code Playgroud)