Преобразование только временной части в android из строки во время

Мне нужно преобразовать метку времени, которая в настоящее время находится в строковом формате «08.00», в действительное время в java, чтобы позже я мог сравнить время. Как преобразовать эту строку во время?

Тег "Android" кажется лишним.

tworogue 22.10.2018 14:13

Возможный дубликат Преобразование строки Java в дату

Ümañg ßürmån 22.10.2018 14:19
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
3
2
1 089
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Ответ принят как подходящий

Что-то вроде этого

        DateFormat sdf = new SimpleDateFormat("hh:mm");
        Date date = sdf.parse(time);            

@MTplus - класс Date сейчас устарел и в значительной степени устарел, и я почти уверен, что если вы напечатаете здесь date, он будет предполагать 01/01/70, так что будьте осторожны.

achAmháin 22.10.2018 14:36

Пожалуйста, не учите молодых пользоваться давно устаревшим и заведомо проблемным классом SimpleDateFormat. По крайней мере, не как первый вариант. И не без оговорок. Сегодня у нас намного лучше java.time, современный API даты и времени Java и его DateTimeFormatter. Да, вы можете использовать его на Android. Для более старых версий Android см. Как использовать ThreeTenABP в Android Project.

Ole V.V. 23.10.2018 09:18

Самый простой способ сделать это - использовать SimplDateFormatter:

DateFormat sdf = new SimpleDateFormat("hh:mm")

Тогда вы можете вызвать Date date = sdf.parse(*your time string*)

Теперь у вас есть время в виде действительного объекта Date.

Попробуйте код ниже,

String time = "08.00"; 
try {
    DateFormat sdfInput = new SimpleDateFormat("hh.mm");
    Date date = sdfInput.parse(time);

    DateFormat sdfOutput = new SimpleDateFormat("hh:mm");
    Log.e( "Time: ", sdfOutput.format(date));
} catch (Exception e) {
    e.printStackTrace();
}

Output -> Time: 08:00

Вместо использования классов Дата и / или SimpleDateFormat, возможно, рассмотрите Местное время

String time = "08:00";
LocalTime lt = LocalTime.parse(time);
System.out.println(lt);

Выход:

08:00

И можно легко сравнить с другими временами с помощью LocalTime::isBefore() или LocalTime::isAfter()

Пример

У меня такой формат времени hhmmss = "151918" поэтому вы можете использовать любой формат вместо ччммсс в соответствии с вашим текущим форматом времени, например "чч.мм" или чч: мм: сс и т. д. и вы можете вызвать эту форму метода в любом месте, где вам нужно.

 fun convertTimeFormat(time:String):String{
        var formattedTime = ""
        try {
            val inputFormat: DateFormat = SimpleDateFormat("hhmmss")
            val timeObj = inputFormat.parse(time)
            Log.d("timeObj",""+timeObj)
            formattedTime=SimpleDateFormat("hh:mm aa").format(timeObj)
        } catch (e: ParseException) {
            e.printStackTrace()
        }
        return formattedTime
    }

Пожалуйста, не учите молодых пользоваться давно устаревшим и заведомо проблемным классом SimpleDateFormat. По крайней мере, не как первый вариант. И не без оговорок. Сегодня у нас намного лучше java.time, современный API даты и времени Java и его DateTimeFormatter. Да, вы можете использовать его на Android. Для более старых версий Android см. Как использовать ThreeTenABP в Android Project.

Ole V.V. 14.04.2019 05:57

Кроме того, похоже, что он не отвечает на вопрос о том, чтобы получить объекты, которые можно было бы сравнить. Наконец, я думаю, что ваш метод дает неправильный результат, если строка была 121918. Вам необходимо следить за регистром букв в шаблоне формата. Есть разница между hh и HH.

Ole V.V. 14.04.2019 05:59

Другие вопросы по теме