2016-04-01 13 views
1

System::Datetime dosyasını QDateTime'a nasıl dönüştürebilirim?Sistem Dönüştürme :: Datetime - QDateTime

+0

QDateTime::fromString(QString::fromStdWString(msclr::interop::marshal_as<std::wstring>(systemDateTime.ToString("ddMMyyyy HH:mm:ss"))), "ddMMyyyy HH:mm:ss")) 
[ bu soru] (http://stackoverflow.com/questions/4030511/convert-a-qdatetime-in- utc-to-local-system-time) ve [bu cevap] (http://stackoverflow.com/a/30930959/5653461) başka bir sorudan. – IAmInPLS

+2

Olası kopyası [QDateTime Conversion] (http://stackoverflow.com/questions/30930085/qdatetime-conversion) – kawashita86

cevap

0
Sen bir göz atmak isteyebilirsiniz
0

Belki de bu basit yöntemdir, ancak understating için kolay olabilir:

a) DateTime.ToString()

b dizeye Sistemi :: datetime dönüştürmek) ile QDateTime dize dönüştürmek QDateTime::fromString()

Ya QDateTime::fromTime_t() kullanımının (bkz. Datetime to time_t conversion)

0

kullanımı Win32 API

#define WINDOWS_TICKS_PER_SEC 10000000 
#define EPOCH_DIFFERENCE 11644473600LL 

QDatetime getQDatetime(){ 
    FILETIME ft = {0}; 
    ::GetSystemTimeAsFileTime(&ft); //Retrieves the current system date and time. 
    LARGE_INTEGER li = {0}; 
    li.LowPart = ft.dwLowDateTime; 
    li.HighPart = ft.dwHighDateTime; 
    long long int hns = li.QuadPart; 
    wprintf(L"Windows API time: %lli\n", hns); 
    long long int utm ; 
    utm=(hns/WINDOWS_TICKS_PER_SEC - EPOCH_DIFFERENCE); 
    wprintf(L"Unix time: %lli\n", utm); 
    return QDateTime::fromTime_t(utm); 
} 

See this for more help

+0

Windows Filetime'yı Unix/Linux'a dönüştürün: http://stackoverflow.com/a/6161842/2731967 – Ankur

0

Sen ara biçimi olarak ISO 8601 normunu kullanabilirsiniz:

/* not tested */ 
System::DateTime date; 
QString str(date.ToString("O")); // "O" for ISO format 
QDateTime qdt = QDateTime::fromString(str, Qt::ISODate); 

QDateTime::fromString ve DateTime::ToString docs

Bkz