Java 设置日历日期
好的,我要做的是设置日历实例的日期,然后返回年中的周。我是通过使用Calendar.set()函数来实现的 要获取lYear、lMonth和lDay值,我将通过以下步骤传递一个格式为Java 设置日历日期,java,calendar,Java,Calendar,好的,我要做的是设置日历实例的日期,然后返回年中的周。我是通过使用Calendar.set()函数来实现的 要获取lYear、lMonth和lDay值,我将通过以下步骤传递一个格式为04/26/2013的字符串: String[] arrDate = dateIn.split("/"); int lMonth = Integer.parseInt(arrDate[0]) - 1; Log.d("SaveHandler", "Month is: " + lMonth); int lDay = In
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。此代码是正确的,问题在于
formWIM.format(…)
,或者主板时钟的电池耗尽。使用
formWIM.format(lc.getTime());
而不是
formWIM.format(lc.get(Calendar.WEEK_OF_YEAR));
编辑您可以解析日期(而不是
dateIn.split(
等)
然后格式化它
SimpleDateFormat formWIM = new SimpleDateFormat("ww", Locale.US);
formWIM.format(date);
Calendar
上的Calendar.MONTH
字段基于0,而不是1(正如我们习惯的那样)。可能是你的问题。不,我已经考虑过了,在我尝试设置它之前,我正在从中减去1。你必须使用Java类还是使用像Joda Time这样已经解决了所有这些问题的第三方库?什么是formWIM
?你的问题可能是格式化。lc.get(Calendar.WEEK\u OF\u YEAR)的输出是什么?请显示lYear
、lMonth
和lDay
值。是的,这已经解决了。非常感谢!
SimpleDateFormat monthDayYear = new SimpleDateFormat("MM/dd/yyyy", Locale.US); //04/26/2013
Date date = monthDayYear.parse("04/26/2013");
SimpleDateFormat formWIM = new SimpleDateFormat("ww", Locale.US);
formWIM.format(date);