繁体   English   中英

如何在android中获取移动时区的缩写/国家代码?

How to get the abbreviation / Country code of mobile timezone in android?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

如何获得时区缩写,如IST(印度标准时间),ET(东部时间)等。

我使用下面的代码来获取android中的时区信息,

选项1:

String mobileTimeZone =  Calendar.getInstance().getTimeZone()
                    .getDisplayName(false, TimeZone.SHORT);

我选择了不同的时区和输出如下,

GMT + 13:00

GMT + 00:00

但是当设置某些时区时,它会给我正确的缩写代码作为输出,如下所示,

美东时间

我还尝试了下面的代码,它给出了时区的完整描述。

选项2:

String mobileTimeZone = Calendar.getInstance().getTimeZone().getID();

获得以下输出,这只是区域名称:

太平洋/中途岛

太平洋/火奴鲁鲁

美洲/蒙得维的亚

是否有任何id或表的列表,包含所有时区供我映射。

而且还需要考虑节省一天的费用。

帮我从android手机上获取Time Zone的缩写。

1 个回复

关于术语:

我们称之为“America / Denver”等字符串(格式为region / city) 时区标识符 ,而不是名称。 这些ID在IANA-TZDB中定义。 时区名称和缩写是完全不同的概念。 这些数据通常起源于CLDR文件(例如来自Unicode联盟,例如此处 ),并且对应于大多数人对其本地的期望。 这些名称是高度本地化的。 一般而言,没有国际标准,既没有标识符也没有名称。 后者只是遵循当地习俗。

制图:

IANA-TZDB中可以找到从时区标识符到国家/地区代码的映射,反之亦然。 然后,您可以快速查看没有您期望的唯一映射。 例子:

欧洲/苏黎世可以在瑞士,德国(原文如此!)和列支敦士登有效。

或者琐碎:

美国有不止一个时区(America / New_York,America / Chicago等)

您希望使用表达式获得唯一的时区缩写

Calendar.getInstance().getTimeZone().getDisplayName(false, TimeZone.SHORT);

是不现实的。 获取您描述的tz缩写的方法是正确的。 但是,正如您自己已经注意到在其他SO帖子中 ,结果因Android设备而异。 主要原因是不同的设备(dalvik vms)通常具有不同的时区名称数据(以及OpenJDK-Oracle-VMs)。

从时区名称和缩写到国家/地区代码的唯一映射通常是不可能的。 反例:“IST”可代表“印度标准时间”或以色列时区。 或者:“BST”用于“欧洲/伦敦”(夏季时)或“太平洋/布干维尔”(全年)。

关于夏令时:

标识符对夏令时不敏感。 相关数据可以是夏令时还是不依赖于相关时间。 时区名称和缩写通常(并非总是)敏感,例如在美国比较“PST”或“PDT”。

总结和建议:

不要将时区名称或缩写用于显示目的以外的任何其他内容。 您不应将这些本地化数据用于任何结论或存储目的。

1 如何在PHP中获取时区的名称和缩写?

从时区标识符开始,例如"America/Los_Angeles" ,如何在PHP中找到该时区的名称和缩写? 例如: 如果我只能获得短缩写('PST'和'PDT'),那就没问题了。 我查看了DateTimeZone::listAbbreviations() ,并尝试检查它以查看哪个 ...

2 如何通过传递国家代码或国家名称在PHP中获取时区

我有国家代码和国家名称使用一些api,有没有办法在PHP中获取给定国家代码和国家名称的时区。 我有这样的数据, 我得到这个数据,我想得到给定地址的时区,有没有办法在PHP。 提前致谢 ...

2015-08-11 13:19:47 3 8291   php
3 在 Swift 中获取时区缩写

我正在尝试使用以下代码检索本地时区的时区缩写。 但是当我在印度时区时,我总是在 GMT+5:30 需要它作为 IST。 当我在 CST 或 PST 时,它会正确出现。 任何人都可以提出一种解决此问题的方法。 非常感谢提前 ...

4 如何在React中获取在线国家时区

提出这个问题可能很愚蠢,但是请相信我,我遇到了麻烦,想弄清楚这个问题。 实际上,当前我正在开发一个响应应用程序,该应用程序基于日期做了一些条件,目前可以正常工作,但是当我从本地计算机更改日期时,由于date,我的UI元素看起来像正常一样。 如果用户更改本地系统时间,我想获取在线时区,那么我没 ...

6 如何在android中获取国家代码(调用代码)?

如何在 android 代码中获取我的 SIM 卡的国家/地区代码。 我用过了 但是在这里我得到了孟加拉国的国家名称,例如“BD”,孟加拉国需要 +880。 此代码的工作方式相同。 Locale.getDefault().getCountry(); 我需要像 +91 表示 ind,+880 表示 ...

8 如何在Android应用程序中获取ISO国家代码?

我是android应用程序的新开发人员。 当我通过国家代码传递手机号码时,我想获得ISO国家代码。 如果我将手机号码传递给1-319-491-6338,我可以在Android中获得美国/美国的国家ISO代码吗? 我编写的代码如下: 在这里,我可以在哪里通过手机号码? 有人 ...

9 如何在android中获取电话号码的国家/地区代码?

我正在从联系人中获取所有电话号码。 然后我使用 PhoneUtil.parse() 方法检查了所有数字以获取数字类型。 但是当电话号码没有与国家代码一起保存时,它会出现异常。 例如,电话号码类似于9876512343 or 09876512343它是一个印度号码。 对于这个数字,我正在解析异常。 如 ...

2014-12-05 07:32:37 2 11494   android
10 Android 中缺少 JodaTime 时区缩写

约拉娜! 来自复活节岛的问候! 我在 Android 中使用 JodaTime 2.10.6 来打印 EAST、PDT、GMT、EEST 等日期的时区缩写: 在任何 Android 设备上,这会打印: ...但是我想要制作的是EAST或EASST并且我无法获得它们中的任何一个! 如果我 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM