Calendar TimeZone SimpleDateFormat

关于Calendar类的使用可参考:Java Calendar类的使用总结html

获取日历(Calendar):java.util.Calendar#getInstance()java

获取时区TimeZone:orm

TimeZone.getTimeZone("GMT+00:00"); 或:TimeZone.getTimeZone("UTC");
TimeZone.getTimeZone("GMT+08:00"); 或:TimeZone.getTimeZone("CTT"); 或:TimeZone.getTimeZone("Asia/Shanghai");

ZoneID可参考:java.time.ZoneId#SHORT_IDShtm

default TimeZone设定:blog

        一、java.util.TimeZone#setDefault(TimeZone zone)get

        二、VM options:-Duser.timezone=UTC源码

语言环境Locale:java.util.Locale#SIMPLIFIED_CHINESE(中国大陆)io

 

Calendar calendar = Calendar.getInstance();
Calendar calendar = Calendar.getInstance("UTC");
Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT+08:00"));
Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("Asia/Shanghai"));
Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("CTT"));
Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("CTT"), Locale.SIMPLIFIED_CHINESE);

calendar.set(Calendar.YEAR, 2099);
calendar.get(Calendar.HOUR_OF_DAY); //能够获取传入TimeZone对应的时间
calendar.getTime(); //获取的依然是defaultTimeZone对应的时间
java.util.Calendar#getTime 源码:
public final Date getTime() {
    return new Date(getTimeInMillis());
}
所以,经过calendar.getTime()获取的依然是defaultTimeZone对应的时间

 

SimpleDateFormat转变时区:form

DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
format.setTimeZone(TimeZone.getTimeZone("CTT"));
format.format(new Date());
format.format(calendar.getTime());
相关文章
相关标签/搜索