在java中解析基于零的月份字符串

在java中解析基于零的月份字符串,java,parsing,date,Java,Parsing,Date,我正在尝试解析如下所示的字符串: 2015, 2, 31, 17, 0, 1 所以我想我会用 SimpleDateFormat("yyyy, MM, dd, hh, mm, ss") 但它假设月份是以1为基础的。在这种情况下,月份(2)是三月。如何告诉SimpleDataFormat或任何其他类使用零基月份进行解析?使用: 一个解决方案,我可以看到增加一个月 Date newDate = DateUtils.addMonths(new Date(), 1); 带日历 Calendar ca

我正在尝试解析如下所示的字符串:

2015, 2, 31, 17, 0, 1
所以我想我会用

SimpleDateFormat("yyyy, MM, dd, hh, mm, ss")
但它假设月份是以1为基础的。在这种情况下,月份(2)是三月。如何告诉SimpleDataFormat或任何其他类使用零基月份进行解析?

使用:


一个解决方案,我可以看到增加一个月

Date newDate = DateUtils.addMonths(new Date(), 1);
带日历

Calendar cal = Calendar.getInstance(); 
cal.add(Calendar.MONTH, 1);
默认情况下,月份是基于0的索引。看


是否有理由不能在使用日期格式格式化月份之前立即向月份中添加一个?这似乎可以解决问题。SimpleDateFormat中没有基于0的月份的占位符,因此您需要显式更改月份或使用日历创建日期。@DavisBroda:对于解析为“2月31日”的示例(因此已调整或无法解析),您认为这将如何工作@DavisBroda在将字符串发送到javascript环境(使用零基月份)之前,我正在用java进行比较,这就是我无法更改字符串的原因。@JonSkeet仔细考虑后,我模糊的想法行不通。这是基于对问题的误解。谢谢你指出这一点。它使用的是
set
的哪个重载?(您需要
Integer.parseInt
在那里调用…)是的,我想我可以手动“解析”字符串,但我希望有更好的方法=)。
Calendar cal = Calendar.getInstance(); 
cal.add(Calendar.MONTH, 1);