我搜索过但无法在java的getMinimalDaysInFirstWeek()
类中找到Calender
的默认值。我没有设置任何类似的语言环境等。我想知道第一周的默认最小天数是多少。不幸的是,我无法运行代码并检查自己,因为它在我只能阅读的服务器上。
答案 0 :(得分:2)
Calendar.getInstance()
,使用默认语言环境返回GregorianCalendar
(通常)构造Calendar
对象:
protected Calendar()
{
this(TimeZone.getDefaultRef(), Locale.getDefault());
sharedZone = true;
}
然后执行以下代码:
private void setWeekCountData(Locale desiredLocale)
{
/* try to get the Locale data from the cache */
int[] data = cachedLocaleData.get(desiredLocale);
if (data == null) { /* cache miss */
ResourceBundle bundle = LocaleData.getCalendarData(desiredLocale);
data = new int[2];
data[0] = Integer.parseInt(bundle.getString("firstDayOfWeek"));
data[1] = Integer.parseInt(bundle.getString("minimalDaysInFirstWeek"));
cachedLocaleData.putIfAbsent(desiredLocale, data);
}
firstDayOfWeek = data[0];
minimalDaysInFirstWeek = data[1];
}
所以 - minimalDaysInFirstWeek
从包sun.util.resources
的编译资源包中检索,CalendarData_<locale>.class
(在Oracle JVM上)。
例如,对于波兰语语言环境,我们有:
public final class CalendarData_pl extends LocaleNamesBundle
{
protected final Object[][] getContents()
{
return new Object[][] { { "firstDayOfWeek", "2" }, { "minimalDaysInFirstWeek", "4" } };
}
}
答案 1 :(得分:0)
通常使用[https://de.wikipedia.org/wiki/Gau%C3%9Fsche_Wochentagsformel]来计算和计算格里高利历(在维基百科上找不到合适的英文版本:'/){{3} } 因此,最小值可能来自此公式或按照惯例(例如01.01.1900)
似乎我误解了你的问题。希望该链接提供了一些理论方面的见解。