TimeZone timeZone = TimeZone.getTimeZone("Asia/Calcutta");
int offset1 = timeZone.getRawOffset();
System.out.println("offset = "+ offset);
int offsetHrs = offset / 1000 / 60 / 60;
int offsetMins = offset / 1000 / 60 % 60;
System.out.println("offsetHrs="+ offsetHrs);
System.out.println("offsetMins="+ offsetMins);
GMTOffset = offsetHrs + ":" + offsetMins;
System.out.println("GMTOffset = " + utzOffset);
输出将是
offset = 19800000
offsetHrs=5
offsetMins=30
GMT offset = 5:30
我在 ms sql server 中使用这个偏移值来转换时区。 sql server 将采用以下格式
(+/-)HH:MM
我的结果是 5:30 但它给出了无效时区错误 应该是 +5:30 。
另一种情况
TimeZone timeZone = TimeZone.getTimeZone("Etc/GMT");
in this case offset will be "0"
but ms sql takes only +00:00 or -00:00 (+/- sign must)
任何人都可以帮助我如何将偏移量格式化为 (+/-)HH:MM 格式。
最佳答案
你可以使用
int offset = timeZone.getRawOffset();
String gmtTZ = String.format("%s%02d:%02d",
offset < 0 ? "-" : "+",
Math.abs(offset) / 3600000,
Math.abs(offset) / 60000 % 60);
关于java - 如何将 GMT 偏移值转换为 +/- HH :MM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13822814/