src/corelib/tools/qdatetime.cpp
changeset 3 41300fa6a67c
parent 0 1918ee327afb
child 4 3b1da2848fc7
equal deleted inserted replaced
2:56cd8111b7f7 3:41300fa6a67c
  1853     t = localtime_r(&ltime, &res);
  1853     t = localtime_r(&ltime, &res);
  1854 #else
  1854 #else
  1855     t = localtime(&ltime);
  1855     t = localtime(&ltime);
  1856 #endif
  1856 #endif
  1857     Q_CHECK_PTR(t);
  1857     Q_CHECK_PTR(t);
  1858     
  1858 
  1859     ct.mds = MSECS_PER_HOUR * t->tm_hour + MSECS_PER_MIN * t->tm_min + 1000 * t->tm_sec
  1859     ct.mds = MSECS_PER_HOUR * t->tm_hour + MSECS_PER_MIN * t->tm_min + 1000 * t->tm_sec
  1860              + tv.tv_usec / 1000;
  1860              + tv.tv_usec / 1000;
  1861 #else
  1861 #else
  1862     time_t ltime; // no millisecond resolution
  1862     time_t ltime; // no millisecond resolution
  1863     ::time(&ltime);
  1863     ::time(&ltime);
  3723     _LIT(KUnixEpoch, "19700000:000000.000000");
  3723     _LIT(KUnixEpoch, "19700000:000000.000000");
  3724     TTimeIntervalSeconds utcOffset = User::UTCOffset();
  3724     TTimeIntervalSeconds utcOffset = User::UTCOffset();
  3725     TTimeIntervalSeconds tTimeIntervalSecsSince1Jan1970UTC(secsSince1Jan1970UTC);
  3725     TTimeIntervalSeconds tTimeIntervalSecsSince1Jan1970UTC(secsSince1Jan1970UTC);
  3726     TTime epochTTime;
  3726     TTime epochTTime;
  3727     TInt err = epochTTime.Set(KUnixEpoch);
  3727     TInt err = epochTTime.Set(KUnixEpoch);
       
  3728     tm res;
  3728     if(err == KErrNone) {
  3729     if(err == KErrNone) {
  3729         TTime utcTTime = epochTTime + tTimeIntervalSecsSince1Jan1970UTC;
  3730         TTime utcTTime = epochTTime + tTimeIntervalSecsSince1Jan1970UTC;
  3730         utcTTime = utcTTime + utcOffset;
  3731         utcTTime = utcTTime + utcOffset;
  3731         TDateTime utcDateTime = utcTTime.DateTime();
  3732         TDateTime utcDateTime = utcTTime.DateTime();
  3732         tm res;
       
  3733         res.tm_sec = utcDateTime.Second();
  3733         res.tm_sec = utcDateTime.Second();
  3734         res.tm_min = utcDateTime.Minute();
  3734         res.tm_min = utcDateTime.Minute();
  3735         res.tm_hour = utcDateTime.Hour();
  3735         res.tm_hour = utcDateTime.Hour();
  3736         res.tm_mday = utcDateTime.Day() + 1; // non-zero based index for tm struct
  3736         res.tm_mday = utcDateTime.Day() + 1; // non-zero based index for tm struct
  3737         res.tm_mon = utcDateTime.Month();
  3737         res.tm_mon = utcDateTime.Month();
  3814     _LIT(KUnixEpoch, "19700000:000000.000000");
  3814     _LIT(KUnixEpoch, "19700000:000000.000000");
  3815     TTimeIntervalSeconds utcOffset = TTimeIntervalSeconds(0 - User::UTCOffset().Int());
  3815     TTimeIntervalSeconds utcOffset = TTimeIntervalSeconds(0 - User::UTCOffset().Int());
  3816     TTimeIntervalSeconds tTimeIntervalSecsSince1Jan1970UTC(secsSince1Jan1970UTC);
  3816     TTimeIntervalSeconds tTimeIntervalSecsSince1Jan1970UTC(secsSince1Jan1970UTC);
  3817     TTime epochTTime;
  3817     TTime epochTTime;
  3818     TInt err = epochTTime.Set(KUnixEpoch);
  3818     TInt err = epochTTime.Set(KUnixEpoch);
       
  3819     tm res;
  3819     if(err == KErrNone) {
  3820     if(err == KErrNone) {
  3820         TTime utcTTime = epochTTime + tTimeIntervalSecsSince1Jan1970UTC;
  3821         TTime utcTTime = epochTTime + tTimeIntervalSecsSince1Jan1970UTC;
  3821         utcTTime = utcTTime + utcOffset;
  3822         utcTTime = utcTTime + utcOffset;
  3822         TDateTime utcDateTime = utcTTime.DateTime();
  3823         TDateTime utcDateTime = utcTTime.DateTime();
  3823         tm res;
       
  3824         res.tm_sec = utcDateTime.Second();
  3824         res.tm_sec = utcDateTime.Second();
  3825         res.tm_min = utcDateTime.Minute();
  3825         res.tm_min = utcDateTime.Minute();
  3826         res.tm_hour = utcDateTime.Hour();
  3826         res.tm_hour = utcDateTime.Hour();
  3827         res.tm_mday = utcDateTime.Day() + 1; // non-zero based index for tm struct
  3827         res.tm_mday = utcDateTime.Day() + 1; // non-zero based index for tm struct
  3828         res.tm_mon = utcDateTime.Month();
  3828         res.tm_mon = utcDateTime.Month();