Intereting Posts
Метод getFragmentManager () не определен для типа MyActivity Каков наилучший способ уникальной идентификации пользователей Android на сервере? OnItemClickListener не запускается в Android GridView Чтение с Android USB-аксессуаров вызывает ENODEV IOException Как найти виртуальную видовую область / ширину экрана с помощью Javascript? Почему Eclipse Android Device Chooser не показывает мое устройство Android? Проблема относительного размещения Android с гравитацией BadTokenException: невозможно добавить окно Как работает многопоточность в Android? Как узнать, прокручивается ли ListView в верхней части позиции? Точное моделирование нажатия клавиш в Javascript Кнопка «Звезда» на Android Тень списка ListView + пользовательский селектор Можем ли мы рисовать линию в холсте андроида между двумя точками, заданными гироскопом? Есть ли способ, которым приложение может проверить, разрешено ли ему получать уведомления?

Как конвертировать 24-х часовой формат в формат до 12 часов?

В моем приложении я хочу преобразовать данную CDT-форматированную 24-часовую строку в CDT-форматированную 12-часовую строку, как преобразовать заданную строку формата 24 часа в строку формата 12 часов?

Solutions Collecting From Web of "Как конвертировать 24-х часовой формат в формат до 12 часов?"

Вы можете попробовать использовать объект SimpleDateFormat для преобразования временных форматов.

 final String time = "23:15"; try { final SimpleDateFormat sdf = new SimpleDateFormat("H:mm"); final Date dateObj = sdf.parse(time); System.out.println(dateObj); System.out.println(new SimpleDateFormat("K:mm").format(dateObj)); } catch (final ParseException e) { e.printStackTrace(); } 

Здесь ссылка javadoc для SimpleDateFromat.

Вот код для конвертирования 24-часового времени в 12 часов с AM и PM. Если вы не хотите AM / PM, то просто замените hh:mm a hh:mm .

 import java.text.SimpleDateFormat; import java.util.Date; public class Main { public static void main(String [] args) throws Exception { try { String _24HourTime = "22:15"; SimpleDateFormat _24HourSDF = new SimpleDateFormat("HH:mm"); SimpleDateFormat _12HourSDF = new SimpleDateFormat("hh:mm a"); Date _24HourDt = _24HourSDF.parse(_24HourTime); System.out.println(_24HourDt); System.out.println(_12HourSDF.format(_24HourDt)); } catch (Exception e) { e.printStackTrace(); } } } //OUTPUT WILL BE //Thu Jan 01 22:15:00 IST 1970 //10:15 PM 

Другое решение:

 System.out.println(hr%12 + ":" + min + " " + ((hr>=12) ? "PM" : "AM")); 

В Java 8 это можно сделать в одной строке, используя класс java.time.LocalTime. Пример кода:

 String result = LocalTime.parse(time, DateTimeFormatter.ofPattern("HH:mm")).format(DateTimeFormatter.ofPattern("hh:mm a")); 
 int n=2; int result= n-12; if (result>o) { system.out.println(result+"pm"); } else { system.out.prinln(result+"am"); } 

Вы можете использовать сканер, если хотите принять вход от пользователя. Надеюсь, это просто 12 на время 🙂

Если вам интересно узнать разницу между K, k и H, h:

H Час в день (0-23) Номер 0 1+

K Час в день (1-24) Номер 24 1+

K Час в am / pm (0-11) Номер 0 1+

Ч Час в am / pm (1-12) Номер 12 1+