Android Timezone.getDefault()给出Asia / Calcutta而不是Asia / Kolkata

Abd*_*mou 1 timezone android

我正在使用Android TimeZone功能,而我的应用正在与一台服务器通信,该服务器希望印度的设备来自亚洲/加尔各答。但是,获得时TimeZone.getDefault().getDisplayName(),我得到的是Asia / Calcutta,而不是加尔各答。知道在打印中的值时TimeZone.getAvailableIDs(),它将同时显示加尔各答和加尔各答。有任何想法吗?

Mat*_*int 5

两者都应有效。该区域曾经被调用并重Asia/Calcutta命名为Asia/Kolkata,但是tzdb中仍然存在一个别名,它将旧名称指向新名称。 看这里

如果服务器不允许使用新名称,则他们需要从此处或以可能使用的任何实现方式更新tz文件。

如果您无法执行此操作,则始终可以捕获这种情况并自己替换字符串。它们是等效区域。