Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在使用 Android TimeZone 功能,并且我的应用程序正在与期望来自印度设备的亚洲/加尔各答的服务器通信。但是,当得到 时TimeZone.getDefault().getDisplayName(),我得到的是亚洲/加尔各答而不是加尔各答。知道在打印值时TimeZone.getAvailableIDs(),它会同时显示加尔各答和加尔各答。有任何想法吗?
TimeZone.getDefault().getDisplayName()
TimeZone.getAvailableIDs()
两者都应该有效。该区域曾经被调用并重Asia/Calcutta命名为Asia/Kolkata,但 tzdb 中仍有一个别名将旧名称指向新名称。 见这里。
Asia/Calcutta
Asia/Kolkata
如果服务器不允许使用新名称,那么他们需要从这里更新他们的 tz 文件,或者在他们可能使用的任何实现中。
如果你不能这样做,你总是可以抓住这种情况并自己更换字符串。它们是等效区域。