1853 t = localtime_r(<ime, &res); |
1853 t = localtime_r(<ime, &res); |
1854 #else |
1854 #else |
1855 t = localtime(<ime); |
1855 t = localtime(<ime); |
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(<ime); |
1863 ::time(<ime); |
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(); |