|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.util
类 SimpleTimeZone
java.lang.Object java.util.TimeZone java.util.SimpleTimeZone
- 所有已实现的接口:
- Serializable, Cloneable
-
public class SimpleTimeZone
- extends TimeZone
SimpleTimeZone
是 TimeZone
的具体子类,表示一个使用格里高利历的时区。此类保持一个相对 GMT 的偏移量,称为原始偏移量,并保持夏令时安排的开始和结束规则。由于它仅为每一项保持单个值,因此它无法处理相对 GMT 的偏移量以及夏令时安排中的历史更改,除了 setStartYear
方法可以指定开始实施夏令时安排的年份之外。
要构造一个带有夏令时安排的 SimpleTimeZone
,可以使用一组规则,即开始规则 和结束规则 来描述该安排。夏令时开始或结束的那一天通过 month、day-of-month 和 day-of-week 值联合指定。month 值由 Calendar 的 MONTH
字段值表示,如 Calendar.MARCH
。day-of-week 值由 Calendar 的 DAY_OF_WEEK
值表示,如 SUNDAY
。这些值的组合含意如下。
- 一个月的具体某一天
要指定一个月的具体某一天,可将 month 和 day-of-month 设置为一个具体的值,并将 day-of-week 设置为 0。例如,要指定 3 月 1 日,可将 month 设置为MARCH
,day-of-month 设置为 1,并将 day-of-week 设置为 0。 - 一个月的某一天或之后的星期几
要具体指定一个月的某一天或之后的星期几,可将 month 设置为一个具体的月份值,将 day-of-month 设置为在该日期或在该日期之后应用规则的那一天,并将 day-of-week 设置为负的DAY_OF_WEEK
字段值。例如,要指定 4 月的第二个星期天,可将 month 设置为APRIL
,day-of-month 设置为 8,并将 day-of-week 设置为-
SUNDAY
。 - 一个月的某一天或之前的星期几
要具体指定一个月的某一天或之前的星期几,可将 day-of-month 和 day-of-week 设置为负值。例如,要指定 3 月 21 日或之前的最后一个星期三,可将 month 设置为MARCH
,将 day-of-month 设置为 -21,并将 day-of-week 设置为-
WEDNESDAY
。 - 一个月的最后一个星期几
要指定一个月的最后一个星期几,可将 day-of-week 设置为DAY_OF_WEEK
值,并将 day-of-month 设置为 -1。例如,要设置 10 月的最后一个星期日,可将 month 设置为OCTOBER
,将 day-of-week 设置为SUNDAY
,并将 day-of-month 设置为 -1。
WALL_TIME
、STANDARD_TIME
和 UTC_TIME
。例如,如果夏令时在挂钟时间凌晨 2:00 结束,则可以在 WALL_TIME
模式中用 7200000 毫秒指定该时间。在这种情况下,结束规则 的挂钟时间与夏令时时间是一样的。
下面是构造时区对象的一些参数示例。
// Base GMT offset: -8:00
// DST starts: at 2:00am in standard time
// on the first Sunday in April
// DST ends: at 2:00am in daylight time
// on the last Sunday in October
// Save: 1 hour
SimpleTimeZone(-28800000,
"America/Los_Angeles",
Calendar.APRIL, 1, -Calendar.SUNDAY,
7200000,
Calendar.OCTOBER, -1, Calendar.SUNDAY,
7200000,
3600000)
// Base GMT offset: +1:00
// DST starts: at 1:00am in UTC time
// on the last Sunday in March
// DST ends: at 1:00am in UTC time
// on the last Sunday in October
// Save: 1 hour
SimpleTimeZone(3600000,
"Europe/Paris",
Calendar.MARCH, -1, Calendar.SUNDAY,
3600000, SimpleTimeZone.UTC_TIME,
Calendar.OCTOBER, -1, Calendar.SUNDAY,
3600000, SimpleTimeZone.UTC_TIME,
3600000)
这些参数规则也适用于设置规则的方法,如 setStartRule
。
- 从以下版本开始:
- 1.1
- 另请参见:
-
Calendar
,GregorianCalendar
,TimeZone
, 序列化表格
字段摘要 | |
---|---|
static int |
STANDARD_TIME 指定为标准时间的开始或结束时间模式的常量。 |
static int |
UTC_TIME 指定为 UTC 的开始或结束时间模式的常量。 |
static int |
WALL_TIME 指定为挂钟时间的开始或结束时间模式的常量。 |
从类 java.util.TimeZone 继承的字段 |
---|
LONG, SHORT |
构造方法摘要 | |
---|---|
SimpleTimeZone(int rawOffset, String ID) 使用给定的相对于 GMT 的基准时区偏移量和不带夏令时安排的时区 ID 构造一个 SimpleTimeZone。 |
|
SimpleTimeZone(int rawOffset, String ID, int startMonth, int startDay, int startDayOfWeek, int startTime, int endMonth, int endDay, int endDayOfWeek, int endTime) 根据给定的相对于 GMT 的基准时区偏移量、时区 ID 和夏令时开始和结束的规则来构造一个 SimpleTimeZone。 |
|
SimpleTimeZone(int rawOffset, String ID, int startMonth, int startDay, int startDayOfWeek, int startTime, int endMonth, int endDay, int endDayOfWeek, int endTime, int dstSavings) 根据给定的相对于 GMT 的基准时区偏移量、时区 ID 和夏令时开始和结束的规则来构造一个 SimpleTimeZone。 |
|
SimpleTimeZone(int rawOffset, String ID, int startMonth, int startDay, int startDayOfWeek, int startTime, int startTimeMode, int endMonth, int endDay, int endDayOfWeek, int endTime, int endTimeMode, int dstSavings) 根据给定的相对于 GMT 的基准时区偏移量、时区 ID 和夏令时开始和结束的规则来构造一个 SimpleTimeZone。 |
方法摘要 | |
---|---|
Object |
clone() 返回此 SimpleTimeZone 实例的一个副本。 |
boolean |
equals(Object obj) 比较两个 SimpleTimeZone 对象的相等性。 |
int |
getDSTSavings() 返回设置在夏令时期间时钟提前的时间量(以毫秒为单位)。 |
int |
getOffset(int era, int year, int month, int day, int dayOfWeek, int millis) 返回以毫秒为单位的本地时间与 UTC 之间的差别,对于指定日期和时间,把原始偏移量和夏令时的效果同时考虑在内。 |
int |
getOffset(long date) 从给定时间的 UTC 返回此时区的偏移量。 |
int |
getRawOffset() 获取此时区的 GMT 偏移量。 |
int |
hashCode() 生成 SimpleDateFormat 对象的哈希码。 |
boolean |
hasSameRules(TimeZone other) 如果此时区与另一时区具有相同的规则和偏移量,则返回 true 。 |
boolean |
inDaylightTime(Date date) 如果给定日期在夏令时期间,则执行查询。 |
void |
setDSTSavings(int millisSavedDuringDST) 设置在夏令时期间时钟提前的时间量(以毫秒为单位)。 |
void |
setEndRule(int endMonth, int endDay, int endTime) 将夏令时结束规则设置为某个月份的固定日期。 |
void |
setEndRule(int endMonth, int endDay, int endDayOfWeek, int endTime) 设置夏令时结束规则。 |
void |
setEndRule(int endMonth, int endDay, int endDayOfWeek, int endTime, boolean after) 将夏令时结束规则设置为某个月份给定日期之前或之后的星期几,例如,8 号或之后的第一个星期一。 |
void |
setRawOffset(int offsetMillis) 把基准时区偏移量设置到 GMT。 |
void |
setStartRule(int startMonth, int startDay, int startTime) 将夏令时开始规则设置为某个月份的固定日期。 |
void |
setStartRule(int startMonth, int startDay, int startDayOfWeek, int startTime) 设置夏令时的开始规则。 |
void |
setStartRule(int startMonth, int startDay, int startDayOfWeek, int startTime, boolean after) 将夏令时开始规则设置为某个月份给定日期之前或之后的星期几,例如,8 号或之后的第一个星期一。 |
void |
setStartYear(int year) 设置夏令时的开始年份。 |
String |
toString() 返回此时区的字符串表示形式。 |
boolean |
useDaylightTime() 如果此时区使用夏令时,则执行查询。 |
从类 java.util.TimeZone 继承的方法 |
---|
getAvailableIDs, getAvailableIDs, getDefault, getDisplayName, getDisplayName, getDisplayName, getDisplayName, getID, getTimeZone, setDefault, setID |
从类 java.lang.Object 继承的方法 |
---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
字段详细信息 |
---|
WALL_TIME
public static final int WALL_TIME
-
指定为挂钟时间的开始或结束时间模式的常量。挂钟时间是开始规则的标准时间,是结束规则的夏令时时间。
- 从以下版本开始:
- 1.4
- 另请参见:
- 常量字段值
STANDARD_TIME
public static final int STANDARD_TIME
-
指定为标准时间的开始或结束时间模式的常量。
- 从以下版本开始:
- 1.4
- 另请参见:
- 常量字段值
UTC_TIME
public static final int UTC_TIME
-
指定为 UTC 的开始或结束时间模式的常量。例如,欧盟规则就指定为 UTC 时间。
- 从以下版本开始:
- 1.4
- 另请参见:
- 常量字段值
构造方法详细信息 |
---|
SimpleTimeZone
public SimpleTimeZone(int rawOffset, String ID)
-
使用给定的相对于 GMT 的基准时区偏移量和不带夏令时安排的时区 ID 构造一个 SimpleTimeZone。
- 参数:
-
rawOffset
- 相对于 GMT 的基准时区偏移量(以毫秒为单位)。 -
ID
- 此实例给定的时区名称。
SimpleTimeZone
public SimpleTimeZone(int rawOffset, String ID, int startMonth, int startDay, int startDayOfWeek, int startTime, int endMonth, int endDay, int endDayOfWeek, int endTime)
-
根据给定的相对于 GMT 的基准时区偏移量、时区 ID 和夏令时开始和结束的规则来构造一个 SimpleTimeZone。假定
startTime
和endTime
都要以挂钟时间表示。夏令时节约的时间量假定为 3600000 毫秒(也就是 1 小时)。此构造方法等效于:SimpleTimeZone(rawOffset, ID, startMonth, startDay, startDayOfWeek, startTime, SimpleTimeZone.
WALL_TIME
, endMonth, endDay, endDayOfWeek, endTime, SimpleTimeZone.WALL_TIME
, 3600000)- 参数:
-
rawOffset
- GMT 的给定基准时区偏移量。 -
ID
- 此对象给定的时区 ID。 -
startMonth
- 夏令时开始的月份。月份是一个MONTH
字段值(基于 0。例如,0 代表 1 月)。 -
startDay
- 夏令时开始的日期。有关此参数的特殊情形,请参阅类的描述。 -
startDayOfWeek
- 夏令时开始时是一周的星期几。有关此参数的特殊情形,请参阅类的描述。 -
startTime
- 以本地挂钟时间表示的夏令时开始时间(此天中的毫秒数),在此情况下为本地标准时间。 -
endMonth
- 夏令时结束的月份。月份是一个MONTH
字段值(基于 0。例如,9 代表 10 月)。 -
endDay
- 夏令时结束的日期。有关此参数的特殊情形,请参阅类的描述。 -
endDayOfWeek
- 夏令时结束时是一周的星期几。有关此参数的特殊情形,请参阅类的描述。 -
endTime
- 以本地挂钟时间表示的夏令时结束时间(此天中的毫秒数),在此情况下为本地标准时间。 - 抛出:
-
IllegalArgumentException
- 如果月份、日期、星期或时间参数超出开始或结束规则的范围。
SimpleTimeZone
public SimpleTimeZone(int rawOffset, String ID, int startMonth, int startDay, int startDayOfWeek, int startTime, int endMonth, int endDay, int endDayOfWeek, int endTime, int dstSavings)
-
根据给定的相对于 GMT 的基准时区偏移量、时区 ID 和夏令时开始和结束的规则来构造一个 SimpleTimeZone。指定
startTime
和endTime
都要以挂钟时间表示。此构造方法等效于:SimpleTimeZone(rawOffset, ID, startMonth, startDay, startDayOfWeek, startTime, SimpleTimeZone.
WALL_TIME
, endMonth, endDay, endDayOfWeek, endTime, SimpleTimeZone.WALL_TIME
, dstSavings)- 参数:
-
rawOffset
- GMT 的给定基准时区偏移量。 -
ID
- 此对象给定的时区 ID。 -
startMonth
- 夏令时开始的月份。月份是一个MONTH
字段值(基于 0。例如,0 代表 1 月)。 -
startDay
- 夏令时开始的日期。有关此参数的特殊情形,请参阅类的描述。 -
startDayOfWeek
- 夏令时开始时是一周的星期几。有关此参数的特殊情形,请参阅类的描述。 -
startTime
- 以本地挂钟时间表示的夏令时开始时间,在此情况下为本地标准时间。 -
endMonth
- 夏令时结束的月份。月份是一个MONTH
字段值(基于 0。例如,9 代表 10 月)。 -
endDay
- 夏令时结束的日期。有关此参数的特殊情形,请参阅类的描述。 -
endDayOfWeek
- 夏令时结束时是一周的星期几。有关此参数的特殊情形,请参阅类的描述。 -
startTime
- 以本地挂钟时间表示的夏令时结束时间,在此情况下为本地标准时间。 -
dstSavings
- 在夏令时期间节省的时间量(以毫秒为单位)。 - 抛出:
-
IllegalArgumentException
- 如果月份、日期、星期或时间参数超出开始或结束规则的范围。 - 从以下版本开始:
- 1.2
SimpleTimeZone
public SimpleTimeZone(int rawOffset, String ID, int startMonth, int startDay, int startDayOfWeek, int startTime, int startTimeMode, int endMonth, int endDay, int endDayOfWeek, int endTime, int endTimeMode, int dstSavings)
-
根据给定的相对于 GMT 的基准时区偏移量、时区 ID 和夏令时开始和结束的规则来构造一个 SimpleTimeZone。此构造方法采用一组完整的开始和结束规则参数,其中包括
startTime
和endTime
模式。此模式指定挂钟时间
或标准时间
或UTC 时间
。- 参数:
-
rawOffset
- GMT 的给定基准时区偏移量。 -
ID
- 此对象给定的时区 ID。 -
startMonth
- 夏令时开始的月份。月份是一个MONTH
字段值(基于 0。例如,0 代表 1 月)。 -
startDay
- 夏令时开始的日期。有关此参数的特殊情形,请参阅类的描述。 -
startDayOfWeek
- 夏令时开始时是一周的星期几。有关此参数的特殊情形,请参阅类的描述。 -
startTime
- 由startTimeMode
指定的时间模式的夏令时开始时间。 -
startTimeMode
- 由 startTime 指定的开始时间模式。 -
endMonth
- 夏令时结束的月份。月份是一个MONTH
字段值(基于 0。例如,9 代表 10 月)。 -
endDay
- 夏令时结束的日期。有关此参数的特殊情形,请参阅类的描述。 -
endDayOfWeek
- 夏令时结束时是一周的星期几。有关此参数的特殊情形,请参阅类的描述。 -
endTime
- 由endTimeMode
指定的时间模式的夏令时结束时间。 -
endTimeMode
- 由 endTime 指定的结束时间的模式。 -
dstSavings
- 在夏令时期间节省的时间量(以毫秒为单位)。 - 抛出:
-
IllegalArgumentException
- 如果月份、日期、星期或时间参数超出开始或结束规则的范围,或者某个时间模式值无效。 - 从以下版本开始:
- 1.4
- 另请参见:
-
WALL_TIME
,STANDARD_TIME
,UTC_TIME
方法详细信息 |
---|
setStartYear
public void setStartYear(int year)
- 设置夏令时的开始年份。
-
- 参数:
-
year
- 夏令时的开始年份。
setStartRule
public void setStartRule(int startMonth, int startDay, int startDayOfWeek, int startTime)
-
设置夏令时的开始规则。例如,如果夏令时在本地挂钟时间的 4 月第一个星期日的上午 2 点开始,则可以通过以下调用来设置开始规则:
setStartRule(Calendar.APRIL, 1, Calendar.SUNDAY, 2*60*60*1000);
-
- 参数:
-
startMonth
- 夏令时开始的月份。月份是一个MONTH
字段值(基于 0。例如,0 代表 1 月)。 -
startDay
- 夏令时开始的日期。有关此参数的特殊情形,请参阅类的描述。 -
startDayOfWeek
- 夏令时开始时是一周的星期几。有关此参数的特殊情形,请参阅类的描述。 -
startTime
- 以本地挂钟时间表示的夏令时开始时间,在此情况下为本地标准时间。 - 抛出:
-
IllegalArgumentException
- 如果startMonth
、startDay
、startDayOfWeek
或startTime
参数超出范围。