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
偏移小时数=5
偏移分钟数=30
格林威治标准时间偏移量 = 5:30
我在MS SQL Server中使用此偏移值来转换时区。SQL Server将采用以下格式
(+/-)HH:MM
我的结果是 5:30,但它给出了无效的时区错误它应该是 +5:30 .
在另一种情况下
时区时区 = 时区.获取时区("等/格林威治标准时间");
在这种情况下,偏移量将为"0"
但 MS SQL 只需要 +00:00 或 -00:00 (+/- 符号必须)
任何人都可以帮助我如何将偏移量格式化为 (+/-)HH:MM 格式。
您可以使用
int offset = timeZone.getRawOffset();
String gmtTZ = String.format("%s%02d:%02d",
offset < 0 ? "-" : "+",
Math.abs(offset) / 3600000,
Math.abs(offset) / 60000 % 60);