微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何获取 EDT 时区的 GMT 值?

如何解决如何获取 EDT 时区的 GMT 值?

java.util.Timezone 包中似乎没有 EDT 时区 ID,如果我想将 EDT - (GMT-4:00) 和 CDT 作为时区,我该怎么做。我已经在下面发布了我的代码

public static void main(String arg[]) {
            String timeZone = "EDT";
            String timeZoneInGMTFormat = "";
            TimeZone timezone = TimeZone.getTimeZone(timeZone);
            Date date = new Date();      
            int offset = timezone.getRawOffset();
            timeZoneInGMTFormat = timeZone + " - (GMT"
                    + String.format("%s%02d:%02d",offset >= 0 ? "+" : "",offset / 3600000,(offset 
                    / 60000) % 60) + ")";   
            System.out.print("Time format = " + timeZoneInGMTFormat);
        }

解决方法

这是我的一项测试的结果。

Time format = US/Eastern - (GMT-4:00)
Time format = US/Central - (GMT-5:00)

我必须使用夏季的特定日期来获取夏令时偏移量。

这是我测试的代码。

import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;

public class Timezone {
    public static void main(String arg[]) {
        String timeZone = "US/Eastern";
        calculateOffset(timeZone);
        timeZone = "US/Central";
        calculateOffset(timeZone);
    }

    private static void calculateOffset(String timeZone) {
        TimeZone timezone = TimeZone.getTimeZone(timeZone);
        
        Calendar c1 = Calendar.getInstance();
        c1.set(Calendar.MONTH,07);
        Date date = c1.getTime();
     
        int offset = timezone.getOffset(date.getTime());
        String timeZoneInGMTFormat = timeZone + " - (GMT"
                + String.format("%s%02d:%02d",offset >= 0 ? "+" : "",offset / 3600000,(offset / 60000) % 60) + ")";   
        System.out.println("Time format = " + timeZoneInGMTFormat);
    }

}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。