当前位置: 首页 > 面试题库 >

获得三个字母的短时区名称(而不是四个字母)?

狄玉书
2023-03-14
问题内容

我编写了一个Android应用程序,该应用程序需要手机当前所在的时区名称短。

我正在使用以下代码:

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

在芝加哥运行时,将返回“ CST”。在纽约,“
EST”。在法国斯特拉斯堡,它的返回“HNEC”(
HEURE师范de l’Europe酒店中央 法语
)。

此位置的时区有时被称为“欧洲中部时间”(请参阅​​Wikipedia的欧洲时区)。

我正在过渡timeZone到非常坚持要获得“ CET”(而不是“
HNEC”)的第三方系统。我可以依靠API调用来返回三个字母(而且,我认为是“更现代的”)短时区名称吗?

随着我的代码在越来越多的位置运行,我猜想这个问题也会在其他地方发生。

我真的希望避免维护某种形式的三字母到四字母短时区名称的映射。


问题答案:

抱歉,您可能无法维护映射。这三个字符实际上是较旧的版本,而不是较新的版本。从classdocs:

为了与JDK 1.1.x兼容,还支持其他三个字母的时区ID(例如“ PST”,“ CTT”,“ AST”)。 但是,不赞成使用它们,
因为相同的缩写通常用于多个时区(例如,“ CST”可以是美国的“ Central Standard Time”和“ China Standard
Time”),并且Java平台只能识别以下一种他们。

如果这是我的问题,请获取第三方系统支持的列表并进行映射。



 类似资料:
  • 的Javadoc中有一个弃用警告: 为了与JDK 1.1.x兼容,还支持其他一些三个字母的时区ID(如“PST”、“CTT”、“AST”)。然而,它们的使用是不可取的... 它在这里说“其他”,但我看不出它在哪里定义了哪些三个字母的ID是不推荐的。这些记录在任何地方吗? 我注意到@shmosel建议的可能重复:“GMT”是Java时区的缩写吗?如果是,可以使用它吗?。这部分涵盖了我的问题;但我问的

  • 问题内容: 我有字母“ a”,“ b”,“ c”。我希望我的结果在TSQL中分别为“ b”,“ c”,“ d”。我会用什么来实现这一目标? 问题答案: 使用得到字符的值,增加一个,并使用转换的值返回到一个字符。

  • 我正在运行测试的类: 测试课程: 当我用一个通过的数字运行测试时,它工作正常,但是当我把它换成不同的东西时,例如69,我得到的是数值,而不是字母: 实际值不应该是D,而应该是F吗?我做错了什么?我正在看这个教程,在15:38,他把它们作为字母而不是数字。

  • 问题内容: 如何获得给定字符串的每个单词的首字母? 我找到了javascript方法,但不确定如何将其转换为php。 问题答案: 在空格上,然后使用表示法以数组形式访问结果字符串: 如果您期望多个空格可以分隔单词,请改用 或者,例如,如果非空格字符分隔单词(),请同时使用:

  • 运行下面列出的代码时,我看到以下错误: 线程“main”java中出现异常。时间总体安排DateTimeParseException:无法在java的索引4处分析文本“2017年9月21日星期四23:47:03 EDT”。时间总体安排DateTimeFormatter。java上的parseResolved0(未知源)。时间总体安排DateTimeFormatter。在java上解析(未知源)。时

  • 在Foundation datepicker插件(与ZURB无关)上,是否可以在Foundation datepicker中以三个字符(MON,TUE,WED等)显示星期名称?( 我的意思是,而不是:莫图我们是萨苏神父 显示这些: MON TUE WED THU FRI SAT SUN.