Qml Locale имеет одинаковый формат для ShortFormat и NarrowFormat
Я пытаюсь отобразить дату (и время), используя методы toLocaleDateString / toLocateTimeString, реализованные для типа Date в Qml ( здесь документ). Это работает, за исключением ShortFormat, который такой же, как NarrowFormat.
Вот пример:
import QtQuick 2.3
import QtQuick.Controls 1.2
ApplicationWindow {
visible: true
width: 640
height: 480
property var locale: Qt.locale()
Label {
id: date
text: {
"DATE: \n" +
"Locale.LongFormat:\t" + new Date().toLocaleDateString(locale, Locale.LongFormat) + "\n" +
"Locale.ShortFormat:\t" + new Date().toLocaleDateString(locale, Locale.ShortFormat) + "\n" +
"Locale.NarrowFormat:\t" + new Date().toLocaleDateString(locale, Locale.NarrowFormat) + "\n"
}
anchors.top : parent
}
Label {
id: time
text:
"TIME: \n" +
"Locale.LongFormat:\t" + new Date().toLocaleTimeString(locale, Locale.LongFormat) + "\n" +
"Locale.ShortFormat:\t" + new Date().toLocaleTimeString(locale, Locale.ShortFormat) + "\n" +
"Locale.NarrowFormat:\t" + new Date().toLocaleTimeString(locale, Locale.NarrowFormat) + "\n"
anchors.top: date.bottom
}
}
Что отображается:
Locale.LongFormat: Wednesday, September 27, 2017
Locale.ShortFormat: 9/27/17
Locale.NarrowFormat: 9/27/17
Locale.LongFormat: 11:46:10 AM CEST
Locale.ShortFormat: 11:46 AM
Locale.NarrowFormat: 11:46 AM
Я ожидал, что ShotFormat даст мне дату 27 сентября 2017 года или что-то похожее, а время 11:46:42.
Я нашел в документе ( здесь) о NarrowFormat, что
Кроме того, для локали системы этот формат такой же, как ShortFormat.
Я не уверен, связано ли это с моей проблемой, так как я явно указываю локаль в toLocaleDateMethod. Даже тогда NarrowFormat должен быть более многословным, а не ShortFormat короче...
Спасибо за вашу помощь!
0 ответов
В документации Qml:
Locale.ShortFormat
является рекомендуемым форматом по умолчанию, так как Locale.NarrowFormat
могут не полностью поддерживаться каждой локалью (см. Типы форматов строки локали) и Locale.LongFormat
может не помещаться в ячейках заголовка.