Сплит строки даты / времени

У меня есть служба 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); 
Intereting Posts