У меня есть служба ReST, которая загружает информацию о событиях в календаре людей …
Когда он возвращает дату и время, он возвращает их как строку
Например date = "12/8/2012" & time = "11:25 am"
Чтобы поместить это в календарь Android, мне нужно сделать следующее:
Calendar beginTime = Calendar.getInstance(); beginTime.set(year, month, day, hour, min); startMillis = beginTime.getTimeInMillis(); intent.put(Events.DTSTART, startMillis);
Как я могу разделить переменные даты и времени, чтобы они могли использоваться в методе «beginTime.set ()»?
Я не думаю, что вам действительно нужно, как разбить строку, в вашем случае это должно быть «как получить время в миллисекундах из строки даты», вот пример:
import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class DateTest { public static void main(String[] args) { String date = "12/8/2012"; String time = "11:25 am"; DateFormat df = new SimpleDateFormat("MM/dd/yyyy hh:mm a"); try { Date dt = df.parse(date + " " + time); Calendar ca = Calendar.getInstance(); ca.setTime(dt); System.out.println(ca.getTimeInMillis()); } catch (ParseException e) { e.printStackTrace(); } } }
Попробуй это:
String date = "12/8/2012"; String time = "11:25 am"; String[] date1 = date.split("/"); String[] time1 = time.split(":"); String[] time2 = time1[1].split(" "); // to remove am/pm Calendar beginTime = Calendar.getInstance(); beginTime.set(Integer.parseInt(date1[2]), Integer.parseInt(date1[1]), Integer.parseInt(date1[0]), Integer.parseInt(time1[0]), Integer.parseInt(time2[0])); startMillis = beginTime.getTimeInMillis(); intent.put(Events.DTSTART, startMillis);
Надеюсь это поможет.
Предполагая, что вы получили свою дату в формате String (если нет, конвертируйте ее!), А затем:
String date = "12/8/2012"; String[] dateParts = string.split("/"); String day = parts[0]; String month = parts[1];
Точно так же вы можете разделить время!
Здесь вы можете увидеть пример метода split: Как разбить строку на Java
Затем просто используйте массив для вашего параметра, например: array [0] за год и т. Д.
Используйте SimpleDateFormat
(проверьте api docs). Если вы предоставите правильный шаблон времени, он сможет мгновенно преобразовать строку в Date.
Это просто идея, вы можете сделать что-то вроде этого без разделения
DateFormat formatter = new SimpleDateFormat("MM/dd/yyyy HH:mm a"); Date date = formatter.parse("12/8/2012 11:25 am"); Calendar cal=Calendar.getInstance(); cal.setTime(date);