java - 从人类可读的时区字符串中获取时区 ID

标签 java android time timezone

有没有办法将人类可读的时区字符串(例如东部标准时间)转换为时区 ID,而无需进行硬编码?

如果我获得时区 ID,那么我可以相应地设置时区。

最佳答案

您可以使用TimeZone类来枚举时区 ID 和字符串。您还可以从字符串值设置时区。

TimeZone 类和 Locale 类可用于在当前或某个指定时区中查找适当的时区名称。例如,此代码 fragment

final Locale fr_FR = Locale.FRANCE;
final Locale de_DE = Locale.GERMANY;
for (String s : TimeZone.getAvailableIDs()) {
    final TimeZone tz = TimeZone.getTimeZone(s);
    sb.append(tz.getDisplayName() + "<br>");
    sb.append(tz.getDisplayName(fr_FR) + "<br>");
    sb.append(tz.getDisplayName(de_DE) + "<br>");
    sb.append("<br>");
}

列出了一些欧洲时区的以下名称:

Eastern European Standard Time
heure normale de l’Europe de l’Est
Osteuropäische Normalzeit

Western European Standard Time
heure normale d’Europe de l’Ouest
Westeuropäische Normalzeit

Central European Standard Time
heure normale de l’Europe centrale
Mitteleuropäische Normalzeit

关于java - 从人类可读的时区字符串中获取时区 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18855086/

相关文章:

java - Android Java 在单独的线程中运行类似于 C# 风格的 Action 列表

java - AAPT : error: <item> inner element must either be a resource reference or empty

android - keystore 文件 D\Telegram-master\TMessagesProj\config\release.keystore 找不到用于签名配置 'debug'

time - 如何区分 LocalDateTime 中何时缺少 "second field"

c++ - 使用 boost::posix_time::microsec_clock 的测量误差超过十微秒?

java - 将结果打印为 : ax+b = 0 线性方程的程序

java - 2D字符格式数组

java - 帧显示问题

java - CountDownTimer 的连续函数

android - 基于手机或桌面的背景图片