java.lang.Object
|---java.util.TimeZone
|---|---java.util.SimpleTimeZone
public class SimpleTimeZone
extends TimeZone
SimpleTimeZone 是 TimeZone 的具体子类,表示用于公历的时区。 该类保存与 GMT 的偏移量,称为原始偏移量,以及夏令时时间表的开始和结束规则。 由于它只为每个值保存单个值,因此它无法处理与 GMT 和夏令时计划的偏移量的历史变化,除了 setStartYear 方法可以指定夏令时计划开始生效的年份。
要构建具有夏令时时间表的 SimpleTimeZone,可以使用一组规则来描述时间表,即开始规则和结束规则。 夏令时开始或结束的日期由月份、月份和星期几值的组合指定。 月份值由 Calendar Calendar#MONTH 字段值表示,例如 Calendar#MARCH。 星期几值由 Calendar Calendar#DAY_OF_WEEK 值表示,例如 Calendar#SUNDAY。 值组合的含义如下。
夏令时开始或结束的时间由一天中的毫秒值指定。 有三种指定时间的模式: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。
修饰符和类型 | 字段 | 描述 |
---|---|---|
static int | STANDARD_TIME | 指定为标准时间的开始或结束时间模式的常数。 |
static int | UTC_TIME | 指定为 UTC 的开始或结束时间模式的常量。 |
static int | WALL_TIME | 指定为挂钟时间的开始或结束时间模式的常量。 |
从类 java.util.TimeZone 继承的字段 |
---|
LONG, SHORT |
构造函数 | 描述 |
---|---|
SimpleTimeZone(int rawOffset, String ID) | 构造一个 SimpleTimeZone,它具有与 GMT 的给定基本时区偏移量和时区 ID,没有夏令时时间表。 |
SimpleTimeZone(int rawOffset, String ID, int startMonth, int startDay, int startDayOfWeek, int startTime, int endMonth, int endDay, int endDayOfWeek, int endTime) | 构造一个 SimpleTimeZone,它具有与 GMT 的给定基本时区偏移量、时区 ID 以及用于开始和结束夏令时的规则。 |
SimpleTimeZone(int rawOffset, String ID, int startMonth, int startDay, int startDayOfWeek, int startTime, int endMonth, int endDay, int endDayOfWeek, int endTime, int dstSavings) | 构造一个 SimpleTimeZone,它具有与 GMT 的给定基本时区偏移量、时区 ID 以及用于开始和结束夏令时的规则。 |
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) | 构造一个 SimpleTimeZone,它具有与 GMT 的给定基本时区偏移量、时区 ID 以及用于开始和结束夏令时的规则。 |
修饰符和类型 | 方法 | 描述 |
---|---|---|
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) | 查询给定日期是否处于夏令时。 |
boolean | observesDaylightTime() | 如果此 SimpleTimeZone 遵守夏令时,则返回 true。 |
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.lang.Object 继承的方法 |
---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
从类 java.util.TimeZone 继承的方法 |
---|
getAvailableIDs, getAvailableIDs, getDefault, getDisplayName, getDisplayName, getDisplayName, getDisplayName, getID, getTimeZone, getTimeZone, setDefault, setID, toZoneId |
public static final int STANDARD_TIME
指定为标准时间的开始或结束时间模式的常数。
public static final int UTC_TIME
指定为 UTC 的开始或结束时间模式的常量。 例如,欧盟规则被指定为 UTC 时间。
public static final int WALL_TIME
指定为挂钟时间的开始或结束时间模式的常量。 挂钟时间是开始规则的标准时间,而结束规则的白天时间。
public SimpleTimeZone(int rawOffset, String ID)
构造一个 SimpleTimeZone,它具有与 GMT 的给定基本时区偏移量和时区 ID,没有夏令时时间表。
参数:
参数名称 | 参数描述 |
---|---|
rawOffset | 与 GMT 的基本时区偏移量(以毫秒为单位)。 |
ID | 赋予此实例的时区名称。 |
public SimpleTimeZone(int rawOffset, String ID, int startMonth, int startDay, int startDayOfWeek, int startTime, int endMonth, int endDay, int endDayOfWeek, int endTime)
构造一个 SimpleTimeZone,它具有与 GMT 的给定基本时区偏移量、时区 ID 以及用于开始和结束夏令时的规则。 startTime 和 endTime 都被指定为在挂钟时间中表示。 夏时制时间假定为 3600000 毫秒(即一小时)。 这个构造函数等价于:
SimpleTimeZone(rawOffset,
ID,
startMonth,
startDay,
startDayOfWeek,
startTime,
SimpleTimeZone.WALL_TIME,
endMonth,
endDay,
endDayOfWeek,
endTime,
SimpleTimeZone.WALL_TIME,
3600000)
参数:
参数名称 | 参数描述 |
---|---|
rawOffset | 给定的基准时区与 GMT 的偏移量。 |
ID | 赋予此对象的时区 ID。 |
startMonth | 夏令时开始月份。 Month 是 Calendar#MONTH 字段值(从 0 开始。例如,0 表示一月)。 |
startDay | 夏令时开始的月份中的哪一天。 |
startDayOfWeek | 从星期几开始的夏令时。 |
startTime | 本地挂钟时间(以毫秒为单位)的夏令时开始时间,在这种情况下为本地标准时间。 |
endMonth | 夏令时结束月份。 Month 是 Calendar#MONTH 字段值(从 0 开始。例如,9 表示 10 月)。 |
endDay | 夏令时结束的月份中的哪一天。 |
endDayOfWeek | 夏令时结束的星期几。 |
endTime | 以本地挂钟时间表示的夏令时结束时间(以一天中的毫秒为单位),在这种情况下为本地夏令时。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IllegalArgumentException | 如果月份、日期、星期几或时间参数超出了开始或结束规则的范围 |
public SimpleTimeZone(int rawOffset, String ID, int startMonth, int startDay, int startDayOfWeek, int startTime, int endMonth, int endDay, int endDayOfWeek, int endTime, int dstSavings)
构造一个 SimpleTimeZone,它具有与 GMT 的给定基本时区偏移量、时区 ID 以及用于开始和结束夏令时的规则。 假定 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 是 Calendar#MONTH 字段值(从 0 开始。例如,0 表示一月)。 |
startDay | 夏令时开始的月份中的哪一天。 |
startDayOfWeek | 从星期几开始的夏令时。 有关此参数的特殊情况,请参见类描述。 |
startTime | 本地挂钟时间中的夏令时开始时间,在这种情况下为本地标准时间。 |
endMonth | 夏令时结束月份。 Month 是 Calendar#MONTH 字段值(从 0 开始。例如,9 表示 10 月)。 |
endDay | 夏令时结束的月份中的哪一天。 有关此参数的特殊情况,请参见类描述。 |
endDayOfWeek | 夏令时结束的星期几。 |
endTime | 本地挂钟时间的夏令时结束时间,在本例中为本地夏令时。 |
dstSavings | 夏令时期间节省的时间(以毫秒为单位)。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IllegalArgumentException | 如果月份、日期、星期几或时间参数超出了开始或结束规则的范围 |
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)
构造一个 SimpleTimeZone,它具有与 GMT 的给定基本时区偏移量、时区 ID 以及用于开始和结束夏令时的规则。 此构造函数采用完整的开始和结束规则参数集,包括 startTime 和 endTime 模式。 模式指定挂钟时间或标准时间或 UTC 时间。
参数:
参数名称 | 参数描述 |
---|---|
rawOffset | 给定的基准时区与 GMT 的偏移量。 |
ID | 赋予此对象的时区 ID。 |
startMonth | 夏令时开始月份。 Month 是 Calendar#MONTH 字段值(从 0 开始。例如,0 表示一月)。 |
startDay | 夏令时开始的月份中的哪一天。 |
startDayOfWeek | 从星期几开始的夏令时。 |
startTime | startTimeMode 指定的时间模式下的夏令时开始时间。 |
startTimeMode | startTime 指定的开始时间的模式。 |
endMonth | 夏令时结束月份。 Month 是 Calendar#MONTH 字段值(从 0 开始。例如,9 表示 10 月)。 |
endDay | 夏令时结束的月份中的哪一天。 |
endDayOfWeek | 夏令时结束的星期几。 |
endTime | endTimeMode 指定的时间模式下的夏令时结束时间。 |
endTimeMode | endTime 指定的结束时间的模式 |
dstSavings | 夏令时期间节省的时间(以毫秒为单位)。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IllegalArgumentException | 如果月份、日期、星期几、更多时间或时间参数超出了开始或结束规则的范围,或者时间模式值无效。 |
public void setStartYear(int year)
设置夏令时开始年份。
参数:
参数名称 | 参数描述 |
---|---|
year | 夏令时开始年份。 |
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 是 Calendar#MONTH 字段值(从 0 开始。例如,0 表示一月)。 |
startDay | 夏令时开始的月份中的哪一天。 |
startDayOfWeek | 从星期几开始的夏令时。 |
startTime | 本地挂钟时间中的夏令时开始时间,在这种情况下为本地标准时间。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IllegalArgumentException | 如果 startMonth、startDay、startDayOfWeek 或 startTime 参数超出范围 |
public void setStartRule(int startMonth, int startDay, int startTime)
将夏令时开始规则设置为一个月内的固定日期。 该方法等价于:
setStartRule(startMonth, startDay, 0, startTime)
参数:
参数名称 | 参数描述 |
---|---|
startMonth | 夏令时开始月份。 Month 是 Calendar#MONTH 字段值(从 0 开始。例如,0 表示一月)。 |
startDay | 夏令时开始的月份中的哪一天。 |
startTime | 本地挂钟时间中的夏令时开始时间,在这种情况下为本地标准时间。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IllegalArgumentException | 如果 startMonth、startDayOfMonth 或 startTime 参数超出范围 |
public void setStartRule(int startMonth, int startDay, int startDayOfWeek, int startTime, boolean after)
将夏令时开始规则设置为一个月内给定日期之前或之后的工作日,例如,第一个星期一在 8 日或之后。
参数:
参数名称 | 参数描述 |
---|---|
startMonth | 夏令时开始月份。 Month 是 Calendar#MONTH 字段值(从 0 开始。例如,0 表示一月)。 |
startDay | 夏令时开始的月份中的哪一天。 |
startDayOfWeek | 从星期几开始的夏令时。 |
startTime | 本地挂钟时间中的夏令时开始时间,在这种情况下为本地标准时间。 |
after | 如果为 true,则此规则选择 dayOfMonth 或之后的第一天 dayOfWeek。 如果为 false,则此规则选择 dayOfMonth 或之前的最后 dayOfWeek。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IllegalArgumentException | 如果 startMonth、startDay、startDayOfWeek 或 startTime 参数超出范围 |
public void setEndRule(int endMonth, int endDay, int endDayOfWeek, int endTime)
设置夏令时结束规则。 例如,如果夏令时在 10 月的最后一个星期日凌晨 2 点在挂钟时间结束,您可以通过调用设置结束规则: setEndRule(Calendar.OCTOBER, -1, Calendar.SUNDAY, 26060*1000);
参数:
参数名称 | 参数描述 |
---|---|
endMonth | 夏令时结束月份。 Month 是 Calendar#MONTH 字段值(从 0 开始。例如,9 表示 10 月)。 |
endDay | 夏令时结束的月份中的哪一天。 |
endDayOfWeek | 夏令时结束的星期几。 |
endTime | 以本地挂钟时间表示的夏令时结束时间(以一天中的毫秒为单位),在这种情况下为本地夏令时。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IllegalArgumentException | 如果 endMonth、endDay、endDayOfWeek 或 endTime 参数超出范围 |
public void setEndRule(int endMonth, int endDay, int endTime)
将夏令时结束规则设置为一个月内的固定日期。 该方法等价于:
setEndRule(endMonth, endDay, 0, endTime)
参数:
参数名称 | 参数描述 |
---|---|
endMonth | 夏令时结束月份。 Month 是 Calendar#MONTH 字段值(从 0 开始。例如,9 表示 10 月)。 |
endDay | 夏令时结束的月份中的哪一天。 |
endTime | 以本地挂钟时间表示的夏令时结束时间(以一天中的毫秒为单位),在这种情况下为本地夏令时。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IllegalArgumentException | endMonth、endDay 或 endTime 参数超出范围 |
public void setEndRule(int endMonth, int endDay, int endDayOfWeek, int endTime, boolean after)
将夏令时结束规则设置为一个月内给定日期之前或之后的工作日,例如,第一个星期一在 8 号或之后。
参数:
参数名称 | 参数描述 |
---|---|
endMonth | 夏令时结束月份。 Month 是 Calendar#MONTH 字段值(从 0 开始。例如,9 表示 10 月)。 |
endDay | 夏令时结束的月份中的哪一天。 |
endDayOfWeek | 夏令时结束的星期几。 |
endTime | 以本地挂钟时间表示的夏令时结束时间(以一天中的毫秒为单位),在这种情况下为本地夏令时。 |
after | 如果为 true,则此规则选择 endDay 或之后的第一个 endDayOfWeek。 如果为 false,则此规则选择该月的 endDay 或之前的最后一个 endDayOfWeek。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IllegalArgumentException | endMonth、endDay、endDayOfWeek 或 endTime 参数超出范围 |
public int getOffset(long date)
在给定时间返回此时区与 UTC 的偏移量。 如果夏令时在给定时间有效,则偏移值将根据夏令时进行调整。
覆盖:
类 TimeZone 中的 getOffset
参数:
参数名称 | 参数描述 |
---|---|
date | 找到时区偏移的时间 |
返回:
添加到 UTC 以获取本地时间的时间量(以毫秒为单位)。
public int getOffset(int era, int year, int month, int day, int dayOfWeek, int millis)
返回指定日期和时间的本地时间和 UTC 之间的毫秒差,同时考虑原始偏移和夏令时的影响。 此方法假定开始月份和结束月份是不同的。 它还使用默认的 GregorianCalendar 对象作为其基础日历,例如用于确定闰年。 不要将此方法的结果与默认 GregorianCalendar 以外的日历一起使用。
注意:一般情况下,客户端应该使用 Calendar.get(ZONE_OFFSET) + Calendar.get(DST_OFFSET) 而不是调用此方法。
指定者:
类 TimeZone 中的 getOffset
参数:
参数名称 | 参数描述 |
---|---|
era | 给定日期的时代。 |
year | 给定日期的年份。 |
month | 给定日期中的月份。 月份是从 0 开始的。 例如,0 表示一月。 |
day | 给定日期的月份中的某一天。 |
dayOfWeek | 给定日期的星期几。 |
millis | 标准本地时间中一天中的毫秒数。 |
返回:
添加到 UTC 以获取本地时间的毫秒数。
Throws:
Throw名称 | Throw描述 |
---|---|
IllegalArgumentException | 时代、月、日、dayOfWeek 或 millis 参数超出范围 |
public int getRawOffset()
获取此时区的 GMT 偏移量。
指定者:
类 TimeZone 中的 getRawOffset
返回:
以毫秒为单位的 GMT 偏移值
public void setRawOffset(int offsetMillis)
将基准时区偏移设置为 GMT。 这是添加到 UTC 以获取本地时间的偏移量。
指定者:
类 TimeZone 中的 setRawOffset
参数:
参数名称 | 参数描述 |
---|---|
offsetMillis | 给定的基准时区偏移到 GMT。 |
public void setDSTSavings(int millisSavedDuringDST)
设置时钟在夏令时提前的时间量(以毫秒为单位)。
参数:
参数名称 | 参数描述 |
---|---|
millisSavedDuringDST | 当夏令时规则生效时,时间相对于标准时间提前的毫秒数。 一个正数,通常为一小时 (3600000)。 |
public int getDSTSavings()
返回在夏令时期间时钟提前的时间量(以毫秒为单位)。
覆盖:
类 TimeZone 中的 getDSTSavings
返回:
夏令时规则生效时时间相对于标准时间提前的毫秒数,如果此时区不遵守夏令时,则为 0(零)。
public boolean useDaylightTime()
查询该时区是否使用夏令时。
指定者:
类 TimeZone 中的 useDaylightTime
返回:
如果此时区使用夏令时,则为 true; 否则为 false。
public boolean observesDaylightTime()
如果此 SimpleTimeZone 遵守夏令时,则返回 true。 此方法等效于 useDaylightTime()。
覆盖:
在 TimeZone 类中观察DaylightTime
返回:
如果此 SimpleTimeZone 遵守夏令时,则为 true; 否则为 false。
public boolean inDaylightTime(Date date)
查询给定日期是否处于夏令时。
指定者:
类 TimeZone 中的 inDaylightTime
参数:
参数名称 | 参数描述 |
---|---|
date | 给定的日期。 |
返回:
如果夏令时在给定日期有效,则为 true; 否则为 false。
public Object clone()
返回此 SimpleTimeZone 实例的克隆。
覆盖:
在 TimeZone 类中克隆
返回:
此实例的克隆。
public int hashCode()
为 SimpleDateFormat 对象生成哈希码。
覆盖:
类 Object 中的 hashCode
返回:
此对象的哈希码
public boolean equals(Object obj)
比较两个 SimpleTimeZone 对象的相等性。
覆盖:
类 Object 中的等于
参数:
参数名称 | 参数描述 |
---|---|
obj | 要与之比较的 SimpleTimeZone 对象。 |
返回:
如果给定的 obj 与此 SimpleTimeZone 对象相同,则为 true; 否则为 false。
public boolean hasSameRules(TimeZone other)
如果此区域与另一个区域具有相同的规则和偏移量,则返回 true。
覆盖:
类 TimeZone 中的 hasSameRules
参数:
参数名称 | 参数描述 |
---|---|
other | 要与之比较的 TimeZone 对象 |
返回:
如果给定区域是 SimpleTimeZone 并且具有与此相同的规则和偏移量,则为 true
public String toString()
返回此时区的字符串表示形式。
覆盖:
类 Object 中的 toString
返回:
此时区的字符串表示形式。
备案信息: 粤ICP备15087711号-2
Copyright © 2008-2024 啊嘎哇在线工具箱 All Rights.
本站所有资料来源于网络,版权归原作者所有,仅作学习交流使用,如不慎侵犯了您的权利,请联系我们。