QDateTime 指定語言,顯示時間日期等資訊

2021-08-09 08:42:41 字數 1234 閱讀 1285

qdatetime 預設根據系統語言進行對應語言的相關轉換。

在設定區域為中文的作業系統中直接呼叫以下函式:

qdatetime datetime = qdatetime::currentdatetime();

qstring strformat = "dd.mm.yyyy, ddd mmmm d yy, hh:mm:ss.zzz, h:m:s ap"

;qstring strdatetime = datetime.tostring(strformat);

qdebug() << strdatetime << endl;

結果如下:

"15.10

.2017, 週日 十月 15 17, 12:59

:21.735, 12:59

:21 下午"

這在多語言專案開發情況下會產生問題,即英文/中文介面只顯示對應作業系統語言的字串格式。

怎麼指定固定語言顯示呢?

qt中借助qlocale類,主要用來在不同語言下,實現各種數字、表示式等字串之間的轉換。

指定特定語言顯示**:

qdatetime datetime = qdatetime::currentdatetime();

qlocale locale = qlocale::english;//指定英文顯示

//qlocale locale = qlocale::chinese;//指定中文顯示

//qlocale locale = qlocale::japanese;//指定日文顯示

qstring strformat =

"dd.mm.yyyy, ddd mmmm d yy, hh:mm:ss.zzz, h:m:s ap";

qstring strdatetime = locale.tostring(datetime, strformat);

qdebug() << strdatetime << endl;

相應的顯示結果如下:

//"15.10.2017, sun october 15 17, 12:48:08.372, 12:48:8 pm"

//"15.10.2017, 週日 十月 15 17, 12:48:44.475, 12:48:44 下午"

//"15.10.2017, 日 10月 15 17, 12:51:06.689, 12:51:6 午後"

Kotlin領域特定語言(DSL)

一 dsl的概念 只在特定領域內使用的語言 例如 html gradle sql等等 特點 計算機程式語言 具有語言的表達能力 有限的表達能力 關注某個特定的領域 二 下面用dsl來寫乙個例子吧 需要下面五個類 三 建立乙個node節點的介面 package cn.kotliner.kotlin a...

DSL 領域特定語言 迷思

所謂領域專用語言 domain specific language dsl 其基本思想是 求專不求全 不像通用目的語言那樣目標範圍涵蓋一切軟體問題,而是專門針對某一特定問題的計算機語言。dsl之於程式設計師正如伽南地之於以色列人,是最初也是最終的夢想。幾乎自計算機發明伊始,人們就開始談論dsl使用d...

Kotlin領域特定語言(DSL)

一 dsl的概念 只在特定領域內使用的語言 例如 html gradle sql等等 特點 計算機程式語言 具有語言的表達能力 有限的表達能力 關注某個特定的領域 二 下面用dsl來寫乙個例子吧 需要下面五個類 三 建立乙個node節點的介面 package cn.kotliner.kotlin a...