相关疑难解决方法(0)

如何将标准的Noda Timezone Id从英语转换为本地化语言?

我目前正在尝试将我的windowsphone Time App本地化为几个国家.我正在使用Noda Time,因为这对新手来说非常容易.我面临的问题是所有Timezone Id都是标准英语,我正在寻找一种方法来将这些Id转换为本地语言字符串.

一种方法是为每种语言中的每个ID制作本地化字符串.但由于有500个时区,它似乎非常低效.请建议一种让我直接将TimeZone ID转换为本地语言的方法.

我的代码:

var now = Instant.FromDateTimeUtc(DateTime.UtcNow);
var tzdb = DateTimeZoneProviders.Tzdb;

var list = from id in tzdb.Ids
           where id.Contains("/") && !id.StartsWith("etc", StringComparison.OrdinalIgnoreCase)
           let tz = tzdb[id]
           let offset = tz.GetUtcOffset(now)
           orderby offset, id
           select new
           {
               DisplayValue = string.Format("(UTC{0}) {1}  {2}  ", offset.ToString("+HH:mm", null), now.WithOffset(offset).TimeOfDay.ToString("hh:mm tt",null),id)
           };
Run Code Online (Sandbox Code Playgroud)

c# nodatime

5
推荐指数
1
解决办法
842
查看次数

标签 统计

c# ×1

nodatime ×1