Java 什么是startMode和endMode?
我正在试用Java的SimpleTimeZone,我想了解它在创建新SimpleTimeZone对象时生成的值。首先,这是我的代码和输出Java 什么是startMode和endMode?,java,Java,我正在试用Java的SimpleTimeZone,我想了解它在创建新SimpleTimeZone对象时生成的值。首先,这是我的代码和输出 import java.util.*; public class SimpleTimeZoneDemo { public static void main( String args[] ){ // create simple time zone object SimpleTimeZone stobj = new SimpleTimeZ
import java.util.*;
public class SimpleTimeZoneDemo {
public static void main( String args[] ){
// create simple time zone object
SimpleTimeZone stobj = new SimpleTimeZone(820,"GMT");
// checking initial value
System.out.println("Initial value: " + stobj);
// setting start rule
stobj.setStartRule( Calendar.MAY, 2, 3600000);
// checking the new value
System.out.println("Final value : " + stobj);
}
它生成的输出是
Initial value: java.util.SimpleTimeZone[id=GMT,offset=820,dstSavings=3600000,
useDaylight=false,startYear=0,startMode=0,startMonth=0,startDay=0,
startDayOfWeek=0,startTime=0,startTimeMode=0,endMode=0,endMonth=0,endDay=0,
endDayOfWeek=0,endTime=0,endTimeMode=0]
Final value : java.util.SimpleTimeZone[id=GMT,offset=820,dstSavings=3600000,
useDaylight=false,startYear=0,startMode=1,startMonth=4,startDay=2,
startDayOfWeek=0,startTime=3600000,startTimeMode=0,endMode=0,
endMonth=0,endDay=0,endDayOfWeek=0,endTime=0,endTimeMode=0]
什么是
startMode
和endMode
?为什么startMode
从0更改为1?我正试图找出它,它似乎与日光节约时间有关?startMode
和endMode
是内部字段。您不能在公共API中访问它们
但是,如果查看源代码内部,它们会被记录下来:
对于startMode
:
指定开始规则模式的变量。采用以下值:
:一周中的确切日期;e、 g.,3月1日DOM_模式
:月份中的星期几;e、 在三月的最后一个星期天月模式下的道琼斯指数
:月日后的星期日;e、 例如,3月15日星期日或之后DOW_GE_DOM_MODE
:月日前一周的某一天;e、 例如,3月15日或之前的星期日DOW_LE_DOM_模式
startDay
字段的解释
如果useDaylight
为false,则忽略此值
对于endMode
:
指定结束规则模式的变量。采用以下值:
:一周中的确切日期;e、 g.,3月1日DOM_模式
:月份中的星期几;e、 在三月的最后一个星期天月模式下的道琼斯指数
:月日后的星期日;e、 例如,3月15日星期日或之后DOW_GE_DOM_MODE
:月日前一周的某一天;e、 例如,3月15日或之前的星期日DOW_LE_DOM_模式
endDay
字段的解释
如果useDaylight
为false,则忽略此值
在您的代码中,第一种情况下,
startMode
为0,因为它未初始化,所以int
采用其默认值。它变为1,因为您将开始规则设置为特定日期,因此模式变为DOM\u mode=1
。请注意,endMode
保持为0,因为没有设置结束规则。为什么public-toString()方法返回一个提及未记录和不可访问字段的字符串?@KlitosKyriacou这才是真正的问题,不是吗?