日期與時間控件QDate, QTime, QDateTime

1. 日期格式符:

d          沒有前導零的數字的日期(1到31)

ddd      縮寫的本地化日期名稱(例如'Mon'到'Sun'
dddd    完整本地化的日期名稱(例如“星期一”到“星期日”)
M         沒有前導零的數字的月份(1-12)
MM      月份爲前導零的數字(01-12)
MMM   縮寫的本地化月份名稱(例如'Jan'到'Dec')
MMMM   完整的本地化月份名稱(例如“1月”到“12月”)
yy     年份爲兩位數字(00-99)
yyyy    年份爲四位數字

 

2. 時間格式符:

h         沒有前導零的小時(如果顯示AM / PM,則爲0到23或1到12)
hh       前導零的小時(如果AM / PM顯示,則爲00到23或01到12)
H        沒有前導零的小時(0到23,即使有AM / PM顯示)
HH     前導零的小時(00到23,即使有AM / PM顯示)
m        沒有前導零的分鐘(0到59)
mm      前導零(00到59)的分鐘
s           整個秒沒有前導零(0到59)
ss        帶有前導零(00到59)
z         第二個小數部分, 沒有尾隨零的毫秒(0到999)
zzz       第二個小數部分, 有尾隨零的毫秒(000到999)
AP / A      使用AM / PM顯示                AM--上午    PM--下午
ap / a       使用am / pm顯示
t             時區

3. QDateTime

在系統語言是English下
QDateTime::currentDateTime().toString(“ddd”);//這樣獲取到的是Mon-Sun,英文星期的3個字母的縮寫。
QDateTime::currentDateTime().toString(“dddd”);//這樣獲取到的是Monday-Sunday,英文星期。

在系統語言是簡體中文下:
QDateTime::currentDateTime().toString(“ddd”);//這樣獲取到的是週一-週日。
QDateTime::currentDateTime().toString(“dddd”);//這樣獲取到的是星期一-星期日。

設置語言參數:

QLocale locale = QLocale::Chinese;//指定中文顯示
//QLocale locale = QLocale::English;//指定英文顯示
//QLocale locale = QLocale::Japanese;//指定日文顯示

QString(locale.toString(QDateTime::currentDateTime(),QString(“dddd”)));

//這樣獲得的星期爲指定的語言格式下的。此處爲星期一 - 星期日
【注】若獲取失敗時,請將 QString(“dddd”) 改成 QString(“dddd ”),加個 空格

4. 例如:

獲取系統當前時間並設置顯示格式
QDateTime current_date_time = QDateTime::currentDateTime();
QString current_date = current_date_time.toString("yyyy-MM-dd hh:mm:ss ddd");
例:2013-05-24 13:09:10 週五
 
獲取當前時間時、分、秒
範圍:小時(0--23)、分鐘(0--59)、秒(0--59)、毫秒(0--999)
QTime current_time = QTime::currentTime();
int hour = current_time.hour();
int minute = current_time.minute();
int second = current_time.second();
int msec = current_time.msec();
 
比較日期大小
//獲取當前時間及文件緩存時間
QDateTime currentDateTime = QDateTime::currentDateTime();
QDateTime dateTime = QDateTime::fromString(strDate, sDateTimeFormat);
 
//獲取文件緩存一個月之後的時間
QDateTime afterOneMonthDateTime = dateTime.addMonths(1);
 
//如果緩存時間超過一個月,則刪除
qint64 nSecs = afterOneMonthDateTime.secsTo(currentDateTime);
if (nSecs > 0)
{
    QFile::remove(strFilePath);
}
這裏是舉的一個小例子(刪除一個月以前的緩存文件),當然也可以使用格式化後的字符串進行比較!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章