Как преобразовать формат QTime 12 в 24 часа и наоборот

У меня есть QTime с текущим временем, отображаемым на экране, и формат времени, который я должен изменить на основе выбора 12/24. Итак, как я могу изменить формат времени 12/24 QTime.


person Wagmare    schedule 03.04.2018    source источник
comment
Разве это больше не связано с тем, как вы форматируете вывод, чем фактическое время, которое хранится в объекте QTime? Как отображать время в объекте? Разве у вас нет минимального, полного и поддающегося проверке примера, чтобы показать нам?   -  person Some programmer dude    schedule 03.04.2018
comment
Это зависит от того, как вы получаете его из QTime, например: QDateTime dateTime; - dateTime.date().toString("dd.MM.yyyy"); или dateTime.time().toString("H:mm:ss");   -  person Farhad    schedule 03.04.2018
comment
Какой-то чувак-программист: Спасибо. формат времени всегда будет в 24-часовом формате. Но на выходе я должен показывать в 12-часовом или 24-часовом формате в зависимости от контекста.   -  person Wagmare    schedule 03.04.2018
comment
Простая if проверка контекста, а затем использование правильного формата для этого контекста?   -  person Some programmer dude    schedule 03.04.2018


Ответы (1)


Это зависит от того, как вы получаете дату или время от QTime. Например:

QDateTime dateTime;
dateTime = dateTime.currentDateTime();
qDebug()<< dateTime.date().toString("dd.MM.yyyy");
qDebug()<< dateTime.time().toString("H:mm:ss");
qDebug()<< dateTime.time().toString("h:mm:ss ap");

Выход:

"03.04.2018"
"15:38:14"
"3:38:14 pm"


@Anonymouse Я не понял твоего вопроса. вы можете получить час, минуту, секунду отдельно следующим образом:

qDebug()<< dateTime.time().toString("h");
qDebug()<< dateTime.time().toString("mm");
qDebug()<< dateTime.time().toString("ss");
qDebug()<< dateTime.time().toString("ap");
qDebug()<< dateTime.time().toString("h ap");
qDebug()<< dateTime.time().toString("H ap");

выход:

"14"
"12"
"15"
"pm"
"2 pm"
"14 pm"
person Farhad    schedule 03.04.2018
comment
@Wagmare: вы читали соответствующую документацию? - person Matteo Italia; 03.04.2018
comment
Еще одна документация, которая содержит большую часть того, что вам нужно знать. Ссылка - person Volkan Güven; 03.04.2018
comment
Я хотел, чтобы компоненты были отдельными строками, поэтому я сделал это. QStringList sl; sl = now.toString (ч мм AP).split ( ); ui-›mTimeHour-›setText (sl.at (0)); ui-›mTimeMinute-›setText (sl.at (1)); ui-›mTimeAMPM-›setText (sl.at (2)); [toString (h) не возвращает 12-часовую строку, ему нужно, чтобы ap\pm возвращал час между 1-12 для времени PM] - person Anonymouse; 05.11.2018