Java 日历:每周的当前日期是否本地化

Java 日历:每周的当前日期是否本地化,java,calendar,dayofweek,Java,Calendar,Dayofweek,我有一个布尔数组,它从1到7,对应于星期一开始的几天 现在,我想检索一周中的今天(即:周一、周二…),从周一开始。我一直在使用以下代码: Calendar c = Calendar.getInstance(); int index = c.get(Calendar.DAY_OF_WEEK)-1;//array starts on 0 and DAY_OF_WEEK on 1 但是由于Calendar.getInstance()是本地化的,我认为根据用户的位置,星期一可能对应于1或0。现在,我想

我有一个布尔数组,它从1到7,对应于星期一开始的几天

现在,我想检索一周中的今天(即:周一、周二…),从周一开始。我一直在使用以下代码:

Calendar c = Calendar.getInstance();
int index = c.get(Calendar.DAY_OF_WEEK)-1;//array starts on 0 and DAY_OF_WEEK on 1
但是由于Calendar.getInstance()是本地化的,我认为根据用户的位置,星期一可能对应于1或0。现在,我想知道的是,如果用户的位置发生变化,那么一周中的某一天是否会发生变化

你能帮我弄清楚吗


谢谢。

今天是一周中的一天

像这样试试

SimpleDateFormat sdf = new SimpleDateFormat("EEEE");
Date d = new Date();
String dayOfTheWeek = sdf.format(d);

为了得到今天的工作日

像这样试试

SimpleDateFormat sdf = new SimpleDateFormat("EEEE");
Date d = new Date();
String dayOfTheWeek = sdf.format(d);

如果你想知道今天的日期,你应该带上字符串:

ActionBar actionBar = getActionBar();
String dateString = (String) android.text.format.DateFormat.format("yyyy/MM/dd", new java.util.Date());
actionBar.setTitle(dateString); 
如果你想删除第一行,我用我的actionbar做了这个

我希望这有帮助

你也可以在这里找到答案:


如果你想知道今天的日期,你应该带上字符串:

ActionBar actionBar = getActionBar();
String dateString = (String) android.text.format.DateFormat.format("yyyy/MM/dd", new java.util.Date());
actionBar.setTitle(dateString); 
如果你想删除第一行,我用我的actionbar做了这个

我希望这有帮助

你也可以在这里找到答案:

Calendar.get(一周中的一天)
始终返回
Calendar.SUNDAY
Calendar.MONDAY
,…,
Calendar.SATURDAY
中的一个,无论区域设置是什么。这些是常数,分别是1,2。。。七,

因此,如果布尔数组从星期一(索引0)开始,到星期天(索引6)结束,您只需要:

int calendarDayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
int myDayOfWeek = calendarDayOfWeek - 2;
if (myDayOfWeek < 0) {
    myDayOfWeek += 7;
}
int calendarDayOfWeek=calendar.get(calendar.DAY/u周);
int myDayOfWeek=日历DayOfWeek-2;
如果(myDayOfWeek<0){
myDayOfWeek+=7;
}
Calendar.get(一周中的一天)
始终返回
Calendar.SUNDAY
Calendar.MONDAY
,…,
Calendar.SATURDAY
中的一个,无论区域设置是什么。这些是常数,分别是1,2。。。七,

因此,如果布尔数组从星期一(索引0)开始,到星期天(索引6)结束,您只需要:

int calendarDayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
int myDayOfWeek = calendarDayOfWeek - 2;
if (myDayOfWeek < 0) {
    myDayOfWeek += 7;
}
int calendarDayOfWeek=calendar.get(calendar.DAY/u周);
int myDayOfWeek=日历DayOfWeek-2;
如果(myDayOfWeek<0){
myDayOfWeek+=7;
}

我认为你是对的。我建议设置时区,这样你们可以得到正确的一周(我还并没有测试过这种方法,这是作为注释添加的。我可能也错了。)Locale usersLocale=Locale.getDefault();Calendar cal=Calendar.getInstance(usersLocale);int index=cal.get(日历日/周)-1;使用this@Raghunandan但是,如果我设置了一个特定的地点,那么这不是当前日期的问题吗(比如在美国,我们可以在周日,而在英国,我们可以在周一)?@MagicMicky这将是特定于该地点的,对吗?@Raghunandan是的,但我只想检索用户所在城镇的一周中的某一天,但从周一开始(因为我的数据是从周一开始的)我认为你是对的。我建议设置时区,这样你就可以得到正确的一周(我还没有测试过这种方法,这是作为注释添加的。我可能也错了。)Locale usersLocale=Locale.getDefault();Calendar cal=Calendar.getInstance(usersLocale);int index=cal.get(Calendar.DAY OF_OF_week)-1、 使用this@Raghunandan但是,如果我设置了一个特定的地点,那么这不是当前日期的问题吗(比如在美国,我们可以在周日,而在英国,我们可以在周一)?@MagicMicky这将是特定于该地点的,对吗?@Raghunandan是的,但我只想检索用户所在城镇的一周中的某一天,但从周一开始(因为我的数据从周一开始)我只想要一周中的一天(从1-7开始),而不是实际日期。我的问题是我不希望它取决于用户的区域设置,但取决于我的(因为我的数据),我只想要一周中的一天(从1-7开始),而不是实际日期。我的问题是我不希望它取决于用户的区域设置,而是取决于我的区域设置(因为我的数据)问题仍然是一样的:dayOfWeek将被本地化,不是吗?(即,如果用户在美国,我们将有1个星期天,如果用户在法国,我们将有1个星期一)问题仍然是一样的:dayOfWeek将被本地化,不是吗?(即,如果用户在美国,我们将有1个星期天,如果用户在法国,我们将有1个星期一)您还可以使用模
int myDayOfWeek=(calendarDayOfWeek-2)%7;
您也可以使用模
int myDayOfWeek=(calendarDayOfWeek-2)%7;