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);
输出将是
偏移= 19800000
offsetHrs = 5
offsetMins = 30
GMT偏移= 5:30
我在ms sql server中使用此偏移值来转换时区。 sql server将采用以下格式
(+/-)HH:MM
我的结果是5:30但是它给出了无效的时区错误 它应该是+5:30。
在另一个案例中
TimeZone timeZone = TimeZone.getTimeZone(“Etc / GMT”);
在这种情况下,偏移量将为“0”
但ms sql只需要+00:00或-00:00(+/-符号必须)
任何人都可以帮我如何格式化(+/-)HH:MM 格式的偏移量。
答案 0 :(得分:11)
您可以使用
int offset = timeZone.getRawOffset();
String gmtTZ = String.format("%s%02d:%02d",
offset < 0 ? "-" : "+",
Math.abs(offset) / 3600000,
Math.abs(offset) / 60000 % 60);