java.util.Calendar 未正确设置月份
Posted
技术标签:
【中文标题】java.util.Calendar 未正确设置月份【英文标题】:java.util.Calendar not setting Month correctly 【发布时间】:2013-03-15 19:49:23 【问题描述】:问题很简单。我想要的是创建一个日历并使用以下属性设置它: 日:17 月份:10(十月) 年份:1989
但是日历没有正确设置 MONTH。
这是代码:
Calendar fecha = new GregorianCalendar();
fecha.set(Calendar.DAY_OF_YEAR, 17);
fecha.set(Calendar.MONTH, Calendar.OCTOBER);
System.out.println(new SimpleDateFormat("dd/MM/yyyy").format(fecha.getTime()));
而我得到的是: 17/01/2013 ------------>月份不是 10 月
这有什么问题? 提前致谢!
【问题讨论】:
【参考方案1】:如果您要设置月份和年份,那么在设置日期时,请使用DAY_OF_MONTH
而不是DAY_OF_YEAR
。
【讨论】:
【参考方案2】:fecha.set(Calendar.DAY_OF_YEAR, 17);
属于一月
你需要设置Calendar.DATE
【讨论】:
【参考方案3】:替换:
Calendar fecha = new GregorianCalendar();
fecha.set(Calendar.DAY_OF_MONTH, 17);
fecha.set(Calendar.MONTH, Calendar.OCTOBER);
System.out.println(new SimpleDateFormat("dd/MM/yyyy").format(fecha.getTime()));
【讨论】:
【参考方案4】:您需要使用 DAY_OF_MONTH 而不是 DAY_OF_YEAR
【讨论】:
【参考方案5】:试试这个,效果很好,还可以用文字显示月份。
`Calendar fecha = new GregorianCalendar();
fecha.set(Calendar.DAY_OF_MONTH, 17);
fecha.set(Calendar.MONTH, Calendar.OCTOBER);
System.out.println(new SimpleDateFormat("dd/MMMM/yyyy").format(fecha.getTime()));`
【讨论】:
以上是关于java.util.Calendar 未正确设置月份的主要内容,如果未能解决你的问题,请参考以下文章
如何结合 java.util.Calendar 和 HQL 之间
常用类一一时间处理相关类一一java.util.Tomezone(java.util.Calendar , java.util.Date , java.text.DateFormat)
java.util.Calendar.get* 和 java.util.Calendar.set* 被阻塞