在android中,我有一个格式为"2015-03-30T12:30:00"
的字符串,我想知道它是哪一天。
使用该功能dayOfweek = 5
和dayOfWeek2 = 2
在同一天使用该设备进行测试?
如果我尝试创建一个包含年,月,日的新日期,则说它已被弃用......
public int devolverDia(String hora)
{
hora = hora.substring(0, 10);
String weekdays[] = new DateFormatSymbols(Locale.ENGLISH).getWeekdays();
Calendar c = Calendar.getInstance();
int year = Integer.parseInt(hora.substring(0, 4));
int month = Integer.parseInt(hora.substring(5, 7));
int day = Integer.parseInt(hora.substring(8, 10));
c.set(Calendar.YEAR, year);
c.set(Calendar.MONTH, month);
c.set(Calendar.DAY_OF_MONTH, day);
int dayOfWeek = c.get(Calendar.DAY_OF_WEEK);
c.setTime(new Date());
int dayOfWeek2 = c.get(Calendar.DAY_OF_WEEK);
return dayOfWeek;
}
答案 0 :(得分:4)
您没有得到预期日期的原因是该行
c.set(Calendar.MONTH, month);
预计月份编号从0(1月)到11(12月)。如果用
替换它c.set(Calendar.MONTH, month - 1);
此代码可以使用。
但是,更好的解决方案是使用SimpleDateFormat
class的parse
方法将String
转换为Date
。
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
c.setTime(format.parse(hora));