Bas*_*que 5 java macos calendar dayofweek week-number
这两个问题让我想知道Mac OS X中的哪些设置会影响Java中的Locale和Calendar默认值和行为:
这些讨论的关键是日历中的这两个属性:
1当在默认美国上运行时,这两个值的默认值在Java 7和8中.什么可以导致报告其他值?
我已经看到了一些特殊的行为,这些行为会影响java.util.Calendar的这些属性.
确定的事实:
Locale由" 系统偏好设置"中的" 语言"确定.将此代码作为测试运行.
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
import java.util.TimeZone;
public class TestCalendar
{
public static void main( String[] args )
{
Locale locale = Locale.getDefault();
Calendar c = Calendar.getInstance();
c.setTime( new Date( new Long( 1293840000000l ) ) ); // First moment of the year 2011 in UTC.
System.out.println( "Locale: " + locale + " | FirstDayOfWeek: " + c.getFirstDayOfWeek() + " | MinimialDaysInFirstWeek: " + c.getMinimalDaysInFirstWeek() );
}
}
Run Code Online (Sandbox Code Playgroud)
在Mac OS X(Mavericks)上托管的Parallels 9虚拟机中使用Mac OS X 10.8.5(Mountain Lion),在安装操作系统期间选择了美国语言环境的Java 8 Update 11 ,我玩了System Preferences> Language & Text.

奇怪的是,更改First day of week" 区域"选项卡无效.Java报告FirstDayOfWeek: 1我是否将该弹出菜单设置为"星期日"或"星期一".
Locale: en_US | FirstDayOfWeek: 1 | MinimialDaysInFirstWeek: 1
Run Code Online (Sandbox Code Playgroud)
重新启动NetBeans IDE没有帮助.重新启动Mac(虚拟机)没有帮助.
在" 区域"选项卡上,选中" 显示所有区域"复选框以查看更多区域.选择French> France.立即运行IDE.无需重启IDE或OS,甚至无需关闭" 系统偏好设置"窗口.
Locale: en_US | FirstDayOfWeek: 2 | MinimialDaysInFirstWeek: 4
Run Code Online (Sandbox Code Playgroud)
有趣的两个帐户.
2作为FirstDayOfWeek 的价值意味着Monday,正如法国(以及世界其他地方)一样.重置Region弹出窗口以United States恢复Java属性,这是一致的和预期的:
Locale: en_US | FirstDayOfWeek: 1 | MinimialDaysInFirstWeek: 1
Run Code Online (Sandbox Code Playgroud)
在" 语言"选项卡上,将Français(法语)拖动到列表顶部,使其显示在英语之前.
立即运行IDE.
Locale: fr_FR | FirstDayOfWeek: 1 | MinimialDaysInFirstWeek: 1
Run Code Online (Sandbox Code Playgroud)
再次,有趣.现在我们知道Java 语言环境是由Mac 语言设置决定的.我们知道这对日历属性没有影响.
所以你认为Mac的语言决定了Java的语言环境和Java语言环境并没有影响日历属性?是的,当阅读上面的内容时,但是在阅读下一节时我们看到Java Locale设置另一种方式可能会影响Calendar属性.很混乱.
发现了另一个矛盾.让我们将Mac还原为美国默认值:(1)英语在语言列表顶部,(2)区域设置为美国.
更改我们的代码以将Locale传递给Calendar的构造函数.
Calendar c = Calendar.getInstance( Locale.FRANCE );
Run Code Online (Sandbox Code Playgroud)
这会影响日历属性:
FirstDayOfWeek: 2 | MinimialDaysInFirstWeek: 4
Run Code Online (Sandbox Code Playgroud)
所以,令人困惑的矛盾是:
| 归档时间: |
|
| 查看次数: |
3159 次 |
| 最近记录: |