Java 如何将GMT偏移值转换为+;/-嗯
这场比赛将被淘汰 偏移量=19800000 offsetHrs=5 偏移时间=30分钟 格林尼治标准时间偏移=5:30 我正在ms sql server中使用此偏移值转换时区。 sql server将采用以下格式Java 如何将GMT偏移值转换为+;/-嗯,java,datetime,timezone,string-formatting,Java,Datetime,Timezone,String Formatting,这场比赛将被淘汰 偏移量=19800000 offsetHrs=5 偏移时间=30分钟 格林尼治标准时间偏移=5:30 我正在ms sql server中使用此偏移值转换时区。 sql server将采用以下格式 TimeZone timeZone = TimeZone.getTimeZone("Asia/Calcutta"); int offset1 = timeZone.getRawOffset(); System.out.println("offset = "+ offs
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);
我的结果是5:30,但它给出了一个无效的时区错误
应该是+5:30
在另一种情况下
时区TimeZone=TimeZone.getTimeZone(“Etc/GMT”)
在这种情况下,偏移量将为“0”
但是ms sql只接受+00:00或-00:00(+/-符号必须)
谁能帮我把偏移量格式化成(+/-)HH:MM格式 您可以使用
(+/-)HH:MM
int offset=timeZone.getRawOffset();
String gmtTZ=String.format(“%s%02d:%02d”,
偏移量<0?”-:“+”,
算术绝对值(偏移量)/3600000,
计算资产负债表(抵销)/60000%60);
我们这里还需要考虑DST吗?我遗漏了什么吗?
int offset = timeZone.getRawOffset();
String gmtTZ = String.format("%s%02d:%02d",
offset < 0 ? "-" : "+",
Math.abs(offset) / 3600000,
Math.abs(offset) / 60000 % 60);