Как получить день с указанной даты в Android
Предположим, что моя дата 02-01-2013
и он хранится в переменной, как:
String strDate = "02-01-2013";
тогда как я должен получить день этой даты (т.е. вторник)?
4 ответа
Используйте класс Calendar из Java API.
Calendar calendar = new GregorianCalendar(2008, 01, 01); // Note that Month value is 0-based. e.g., 0 for January.
int reslut = calendar.get(Calendar.DAY_OF_WEEK);
switch (result) {
case Calendar.MONDAY:
System.out.println("It's Monday !");
break;
}
Вы также можете использовать SimpleDateFormater и Date для разбора дат
Date date = new Date();
SimpleDateFormat date_format = new SimpleDateFormat("yyyy-MM-dd");
try {
date = date_format.parse("2008-01-01");
} catch (ParseException e) {
e.printStackTrace();
}
calendar.setTime(date);
Сначала разбейте строку
String[] out = strDate.split("-");
s1 = Integer.parseInt(out[0]);
s2 = Integer.parseInt(out[1]) - 1;
yr = out[2];
char a, b, c, d;
a = yr.charAt(0);
b = yr.charAt(1);
c = yr.charAt(2);
d = yr.charAt(3);
s3 = Character.getNumericValue(a)*1000 +
Character.getNumericValue(b)*100 +
Character.getNumericValue(c)*10 +
Character.getNumericValue(d);
затем создайте экземпляр календаря в этот день
Calendar cal = Calendar.getInstance();
cal.set(s3, s2, s1);
тогда получи день
cal.get(Calendar.DAY_OF_WEEK);
Используйте этот формат для даты, дня и времени.
Дата dNow = новая дата (); SimpleDateFormat ft = new SimpleDateFormat("E yyyy.MM.dd 'at' hh:mm:ss a zzz");
и выйти из объекта с помощью метода форматирования. ft.format(dNow)
Я думаю, что на основе документации Android предлагается использовать календарь,
Вы должны быть осторожны, потому что первый день 1 - воскресенье, а первый месяц - январь. Также убедитесь, что вы можете получить DAY_OF_WEEK, DAY_OF_MONTH и т. Д.