Java获取指定时区的时间格式

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011798638/article/details/84244039

示例

分享一个获取指定时区的时间格式方法:timeZoneOffset指定为8,获取东8区的时间,timeZoneOffset指定为-5,获取西5区的时间。

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.SimpleTimeZone;
import java.util.TimeZone;

public class TimeZoneTest {
    public static String getFormatedDateString(int timeZoneOffset) {
        if (timeZoneOffset > 14 || timeZoneOffset < -12) {
            System.out.println("Configuration item TimeZone " + timeZoneOffset + " is invalid.");
            timeZoneOffset = 0;
        }
        TimeZone timeZone;

        String[] ids = TimeZone.getAvailableIDs(timeZoneOffset * 60 * 60 * 1000);
        if (ids.length == 0) {
            // Use default TimeZone
            timeZone = TimeZone.getDefault();
        } else {
            timeZone = new SimpleTimeZone(timeZoneOffset * 60 * 60 * 1000, ids[0]);
        }

        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        simpleDateFormat.setTimeZone(timeZone);

        return simpleDateFormat.format(new Date());
    }

    public static void main(String[] args) {
        String test = getFormatedDateString(8);
        System.out.println(test);

        System.out.println(getFormatedDateString(-5));
    }
}

问题

时区名

同一个时区存在多个不同的国家、城市,不同城市会用不同的夏令时时间,所以上面的示例只是获取时区ID列表的第一个代表,可能出现夏令时错误。更精确的方式是指定精确的时区名。比如:悉尼和布里斯班,都是东10区,但是悉尼实行夏令时,所以夏天的时候,悉尼要比布里斯班早1小时。

TimeZone timeZoneSYD = TimeZone.getTimeZone("Australia/Sydney");
TimeZone timeZoneBNE = TimeZone.getTimeZone("Australia/Brisbane");

时区精度

上述例子中整数表示时区,大部分情况下是没有问题的,有些地区时区是存在半点时区。比如:GMT+05:30 印度标准时间(Indian Standard Time 缩写IST)

参考时区

KLT +14:00 基里巴斯线岛时间
NZDT +13:00 新西兰夏时制
IDLW +12:00 国际日期变更线,西边
NZST +12:00 新西兰标准时间
NZT +12:00 新西兰时间

CCT +08:00 中国北京时间(俄罗斯伊尔库茨克时区)
WST +08:00 西澳大利亚标准时间

GMT 0:00 格林尼治标准时间
UT +00:00 全球时间
UTC +00:00 校准的全球时间

EDT -04:00 东部夏时制
CDT -05:00 中部夏时制
EST -05:00 东部标准时间
CST -06:00 中部标准时间

CAT -10:00 中阿拉斯加时间
NT -11:00 阿拉斯加诺姆时间
IDLE -12:00 国际日期变更线,东边

猜你喜欢

转载自blog.csdn.net/u011798638/article/details/84244039