如何将月份字符串转换为整数?
单击方法时,我想显示所选的日期,但如果该日期有事件,它应该显示有关该事件的更多信息。检查假期事件的方法需要整数值。
这是代码:
更新:
@Override
public void onClick(View view)
{
int m = 0;
int d, y;
String date_month_year = (String) view.getTag();
selectedDayMonthYearButton.setText("Selected: " + date_month_year);
String [] dateAr = date_month_year.split("-");
Log.d(tag, "Date Split: " + dateAr[0] + " " + dateAr[1] + " " + dateAr[2]);
y = Integer.parseInt(dateAr[2]);
try {
Calendar c1 = Calendar.getInstance();
c1.setTime(new SimpleDateFormat("MMM").parse(dateAr[1]));
m = c1.get((Calendar.MONTH) + 1);
}
catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//int m = Integer.parseInt(dateAr[1]);
d = Integer.parseInt(dateAr[0]);
Log.d(tag, "Date forward: " + d + " " + m + " " + y);
if (isHoliday(d, m, y))
{
Intent i = new Intent(view.getContext(), HijriEvents.class);
i.putExtra("date_string", date_month_year);
startActivity(i);
}
try
{
Date parsedDate = dateFormatter.parse(date_month_year);
Log.d(tag, "Parsed Date: " + parsedDate.toString());
}
catch (ParseException e)
{
e.printStackTrace();
}
}
public Boolean isHoliday(int d, int m, int y)
{
HijriCalendar hijri = new HijriCalendar(y, m, d);
if (!hijri.checkIfHoliday().contentEquals(""))
return true;
return false;
}
Calendar cal = Calendar.getInstance();
cal.setTime(new SimpleDateFormat("MMM").parse("July"));
int monthInt = cal.get(Calendar.MONTH) + 1;
看
只有 12 个月,所以只需规范化字符串并进行字符串比较即可。我不会尝试过度优化。
在现代 Java 中,仅使用 java.time 类,切勿使用
Calendar
、Date
、SimpleDateFormat
等
java.time.Month
类型的枚举对象。技巧是使用 Enum.valueOf
方法按名称查找枚举对象。
Month month = Enum.valueOf ( Month.class , "JANUARY" ) ;
要获取 1 月到 12 月的数字 1-12,请询问枚举对象的值及其在枚举对象的声明列表中的顺序位置。致电
Month#getValue
。
int monthNumber = month.getValue() ;