日历:是当前的DAY_OF_WEEK本地化

时间:2013-06-02 13:08:13

标签: 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.现在,我想知道的是,是否,如果用户的位置发生变化,DAY_OF_WEEK会不会改变?

你能帮我解决一下吗?

感谢。

3 个答案:

答案 0 :(得分:3)

无论语言环境如何,

Calendar.get(DAY_OF_WEEK)始终会返回CALENDAR.SUNDAYCalendar.MONDAY,...,Calendar.SATURDAY中的一个。这些是常数,分别为1,2,...... 7。

因此,如果您的布尔数组从星期一开始(索引0)并在星期日(索引6)结束,那么您只需要:

int calendarDayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
int myDayOfWeek = calendarDayOfWeek - 2;
if (myDayOfWeek < 0) {
    myDayOfWeek += 7;
}

答案 1 :(得分:1)

如果你想得到今天的日期,你应该拿String:

ActionBar actionBar = getActionBar();
String dateString = (String) android.text.format.DateFormat.format("yyyy/MM/dd", new java.util.Date());
actionBar.setTitle(dateString); 

如果你想要你可以删除第一行,我用我的动作栏做了这个。

我希望它有所帮助......

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

How do you format date and time in Android?

答案 2 :(得分:0)

获取今天的一周...

试试这个

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