Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使java日历从周一开始工作日?_Java_Calendar - Fatal编程技术网

如何使java日历从周一开始工作日?

如何使java日历从周一开始工作日?,java,calendar,Java,Calendar,我已经编写了代码,它使用Java日历,并从时间戳显示每周的天。但默认日历从星期日(1)开始。我希望它从星期一开始,星期一应该返回1。这是我的密码: Calender c = Calender.getInstance(TimeZone.getInstance("Australia/Sydney")); c.setTimeInMillis(1413831601032L); c.setFirstDayOfWeek(Calender.Monday); System.out.println(c.get(c

我已经编写了代码,它使用Java日历,并从时间戳显示每周的天。但默认日历从星期日(1)开始。我希望它从星期一开始,星期一应该返回1。这是我的密码:

Calender c = Calender.getInstance(TimeZone.getInstance("Australia/Sydney"));
c.setTimeInMillis(1413831601032L);
c.setFirstDayOfWeek(Calender.Monday);
System.out.println(c.get(c.DAY_OF_WEEK));
setFirstDayOfWeek()在这种情况下没有帮助


星期二的输出应该是2,但它显示的是3。如果您有任何帮助,我们将不胜感激。

一周的第一天是从当前区域设置派生的。如果未设置日历的区域设置
(calendar.getInstance(区域设置)
,或新的
GregoriaCalendar(区域设置))
,则将使用系统的默认设置

public static void main(String[] args) {
    Calendar c = new GregorianCalendar();
    System.out.println(Locale.getDefault() + ": " + c.getFirstDayOfWeek());
}
对于语言/国家/地区,这应显示具有不同JVM参数的不同输出:

-Duser.language=en -Duser.country=US -> en_US: 1 (Sunday)
-Duser.language=en -Duser.country=GB -> en_GB: 2 (Monday)
此外,您还可以使用方法
setFirstDayOfWeek()
设置一周的第一天。该方法只能影响月的周的返回值
或年的周的返回值
。或者一周中的某一天,它什么也不做

参考更多

此外,如果您看到,您将看到天的值是恒定的,如下所示。这就是为什么周一它将返回1,无论一周的第一天设置为什么

公共最终静态int SUNDAY=1

公共最终静态int星期一=2;

公共最终静态int周六=7

根据设置的第一天,您可以执行以下操作并操作数据

[c.get(Calendar.DAY_OF_WEEK) - 1]);

尽量避免使用get返回的原始值。在代码中,应始终对照Calendar类中定义的常量进行检查。这有一个很大的优势,它更可读

考虑以下代码片段

在这里,很难找到一周中哪一天你想做什么动作

switch (c.get(Calendar.DAY_OF_WEEK)) {
    case 2: 
        // do something
        ; break;
    case 3: 
        // do something
        break;

}
这个例子更能自我解释

switch (c.get(Calendar.DAY_OF_WEEK)) {
    case Calendar.MONDAY: 
        // do something
        ; break;
    case Calendar.TUESDAY: 
        // do something
        break;

}