java/android-时区的一致方式3字母缩写

java/android-时区的一致方式3字母缩写,java,android,android-studio,gradle,android-gradle-plugin,Java,Android,Android Studio,Gradle,Android Gradle Plugin,如何在Java中获得时区的三个字母缩写 例如:TimeZone.getTimeZone(“太平洋/奥克兰”).getDisplayName给了我: GMT+12 但是我想要NZST或NZDT 可能吗?试试这些 TimeZone timeZone = TimeZone.getTimeZone("Pacific/Auckland"); System.out.println(timeZone.getID()); System.out.println(timeZone.getRawOffset());

如何在Java中获得时区的三个字母缩写

例如:
TimeZone.getTimeZone(“太平洋/奥克兰”).getDisplayName
给了我:

GMT+12

但是我想要
NZST
NZDT

可能吗?

试试这些

TimeZone timeZone = TimeZone.getTimeZone("Pacific/Auckland");
System.out.println(timeZone.getID());
System.out.println(timeZone.getRawOffset());
System.out.println(timeZone.getDisplayName(false, TimeZone.LONG));
System.out.println(timeZone.getDisplayName(false, TimeZone.SHORT));
System.out.println(timeZone.getDisplayName(true, TimeZone.LONG));
System.out.println(timeZone.getDisplayName(true, TimeZone.SHORT));
我认为这是你需要的:

System.out.println(timeZone.getDisplayName(true, TimeZone.SHORT));
利用乔达时间

DateTimeZone dz = DateTimeZone.forID("Pacific/Auckland");
String timezone = dz.getNameKey(DateTimeUtils.currentTimeMillis()); // NZST
build.gradle中添加-

implementation 'joda-time:joda-time:2.10'

似乎不太可能,因为
太平洋/奥克兰
时区既不是
NZST
也不是
NZDT
。在本年度的某些时间,其偏移量与NZST的偏移量相同,在本年度的其余时间,其偏移量与NZDT的偏移量相同。但是它和NZST或NZDT都不是同一时区。它们中的任何一个都将取决于当前时间。但是你可以用现在的时间得到它们。看看我的答案,我确实试过了。但是,在Android中,它返回GMT+12:00您确定AS支持
DateTimeZone
API吗?您所说的“AS”是什么意思?我要求使用乔达时代图书馆。它可以按照OP的要求工作。我是说Android studio,而Joda Time不支持as。@Ibrahim,我只是尝试了一下,一切都很好。查看我的更新答案。它确实有效。不确定这是否会中断,或者这是标准答案?我是说时区。假设getNameKey总是返回3个字母的代码??