2014-02-11 75 views
2

我有datetime存儲在MSSQL數據庫中的日期。在我的C++應用程序中,這些日期被拉出數據庫並存儲在一個CString中。C++ ParseDateTime() - SQL日期時間爲英國日期

我想用COleDateTime的ParseDateTime()以很好的格式顯示這些日期。不過,我發現它們以美式格式顯示(MM/DD/YYYY),並按此排序。我希望他們以英國格式顯示(MM/DD/YYYY)。我試過下面的代碼沒什麼區別:

codt.ParseDateTime(sqlresults.GetItem(_T("date"),l),0,MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_UK)); 

謝謝!

+0

那麼SUBLANG_ENGLISH_US是否解決了這個問題?如果不是,最好發佈'sqlresults.GetItem(_T(「date」),l)'的輸出。 – mockinterface

回答

1

ParseDateTime函數用於讀取提供的值 - 對於您的情況,您從數據庫中獲取它並設置COleDateTime對象的內部表示形式。

您不是在此方法之後,而是在COleDateTime::Format方法之後。

codt.ParseDateTime(
    sqlresults.GetItem(_T("date"),l), 
    0, 
    MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US)); 
CString dateAsUkString = codt.Format(_T("%d/%m/%Y")); 
// display the dateAsUkString string in your view 
+0

對不起,如果我不清楚 - 我遇到的問題是,當我使用Format方法時,它顯示的日期爲月份,月份爲日期。問題是,ParseDateTime在解析它時,會抓取字符串中的日期值並將其用作內部月份屬性,反之亦然。 – Raiden616

+0

@ user1014679在這種情況下,您是否嘗試切換到SUBLANG_ENGLISH_US? – mockinterface

相關問題