如何将 GMT 偏移值转换为 +/- HH:MM


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);

相关内容

  • 没有找到相关文章

最新更新