好吧,所以我想要做的就是设置日历实例的日期设置,然后返回week_of_year。我使用Calendar.set()函数的设置日历日期
public String weekInYearForm = "ww";
SimpleDateFormat formWIM = new SimpleDateFormat(weekInYearForm, Locale.US);
Calendar lc = Calendar.getInstance();
lc.set(Calendar.YEAR, lYear);
lc.set(Calendar.MONTH, lMonth);
lc.set(Calendar.DAY_OF_MONTH, lDay);
wiy = formWIM.format(lc.get(Calendar.WEEK_OF_YEAR));
这样做要得到年权,lMonth,和L天的价值观,我在格式04/26/2013
传递字符串通过以下步骤:
String[] arrDate = dateIn.split("/");
int lMonth = Integer.parseInt(arrDate[0]) - 1;
Log.d("SaveHandler", "Month is: " + lMonth);
int lDay = Integer.parseInt(arrDate[1]);
Log.d("SaveHandler", "Day is: " + lDay);
int lYear = Integer.parseInt(arrDate[2]);
Log.d("SaveHandler", "Year is: " + lYear);
我面临的问题是,当我看到什么是输出到wiy时,它总是1.经过一些进一步的调试,我意识到时间是在纪元时间,而不是设置为我需要的值。
我也试过使用lc.set(lYear, lMonth, lDay)
,也无济于事。如果有人有任何想法,我会非常感激他们。
*编辑:我早些时候做了一些调试,并且它返回了1970年的年份和0月份。
“日历”上的'Calendar.MONTH'字段是基于0的,而不是1(正如我们习惯的那样)。也许有你的问题。 – 2013-04-26 22:36:38
不,我曾经想过,在我尝试设置之前就减去1。 – ubundude 2013-04-26 22:37:21
您是否必须使用Java类或使用像Joda Time这样已经解决了所有这些问题的第三方库? – 2013-04-26 22:39:47