Первое решение, используя фильтр. Второе решение, используя понимание списка.
#If we want to remove all 2.
ls = [2, 2, 3, 4, 5, 6, 7, 8, 2, 3, 4, 6, 2]
# 1-filter takes two arguments(condition,sequence)
ls = list(filter(lambda x: x != 2, ls))
# 2-list comprehension
ls = [x for x in ls if x != 2]
Согласно комментарию Basil Bourque, это обновленный ответ на этот вопрос, учитывая новый API Java 8:
String myDateString = "13:24:40";
LocalTime localTime = LocalTime.parse(myDateString, DateTimeFormatter.ofPattern("HH:mm:ss"));
int hour = localTime.get(ChronoField.CLOCK_HOUR_OF_DAY);
int minute = localTime.get(ChronoField.MINUTE_OF_HOUR);
int second = localTime.get(ChronoField.SECOND_OF_MINUTE);
//prints "hour: 13, minute: 24, second: 40":
System.out.println(String.format("hour: %d, minute: %d, second: %d", hour, minute, second));
Замечания:
====== Ниже приведен старый ( оригинал) ответ на этот вопрос, используя pre-Java8 API: =====
Прошу прощения, если я собираюсь расстроить кого-либо с этим, но я на самом деле собираюсь ответить на вопрос. Java API довольно огромны, я думаю, что это нормально, что кто-то может время от времени пропустить.
SimpleDateFormat может сделать трюк здесь:
http: // docs .oracle.com / javase / 7 / docs / api / java / text / SimpleDateFormat.html
Это должно быть что-то вроде:
String myDateString = "13:24:40";
//SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss");
//the above commented line was changed to the one below, as per Grodriguez's pertinent comment:
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
Date date = sdf.parse(myDateString);
Calendar calendar = GregorianCalendar.getInstance(); // creates a new calendar instance
calendar.setTime(date); // assigns calendar to given date
int hour = calendar.get(Calendar.HOUR);
int minute; /... similar methods for minutes and seconds
У вас есть должен знать:
Если вы хотите извлечь часы, минуты и секунды, попробуйте следующее:
String inputDate = "12:00:00";
String[] split = inputDate.split(":");
int hours = Integer.valueOf(split[0]);
int minutes = Integer.valueOf(split[1]);
int seconds = Integer.valueOf(split[2]);
Немного verbose, но это стандартный способ синтаксического анализа и форматирования дат в Java:
DateFormat formatter = new SimpleDateFormat("HH:mm:ss");
try {
Date dt = formatter.parse("08:19:12");
Calendar cal = Calendar.getInstance();
cal.setTime(dt);
int hour = cal.get(Calendar.HOUR);
int minute = cal.get(Calendar.MINUTE);
int second = cal.get(Calendar.SECOND);
} catch (ParseException e) {
// This can happen if you are trying to parse an invalid date, e.g., 25:19:12.
// Here, you should log the error and decide what to do next
e.printStackTrace();
}
вы можете использовать метод toCharArray () возвращать данные типа: array ("1", "2", ":", "0", "1", ":", "0", "0") & lt; - это char в java или вы можете преобразовать строку в Date + try catch =>, затем получить час, минуты и amp; секунд
String time = "12:32:22";
String[] values = time.split(":");
Это займет ваше время и разделит его на то, где он видит двоеточие, и поместите значение в массив, поэтому после этого у вас должно быть 3 значения.
Затем перебираем строковый массив и конвертируем каждый. (с Integer.parseInt
)
LocalTime lt = LocalTime.parse("14:23:57");
– Asanka Siriwardena 6 January 2016 в 17:25