diff options
| author | Vincent Richard <[email protected]> | 2005-10-03 12:24:08 +0000 |
|---|---|---|
| committer | Vincent Richard <[email protected]> | 2005-10-03 12:24:08 +0000 |
| commit | bdc2664ee2fea811cd72aa9950c63192ec5ec2e1 (patch) | |
| tree | 0693fc2f43d32c8330ea419c017596d9b05d7a20 /src/dateTime.cpp | |
| parent | Too much CPU time used when waiting for data to be received. (diff) | |
| download | vmime-bdc2664ee2fea811cd72aa9950c63192ec5ec2e1.tar.gz vmime-bdc2664ee2fea811cd72aa9950c63192ec5ec2e1.zip | |
Made 'datetime' compatible with C's time_t.
Diffstat (limited to 'src/dateTime.cpp')
| -rw-r--r-- | src/dateTime.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/dateTime.cpp b/src/dateTime.cpp index d0cfcd9e..36aafe2a 100644 --- a/src/dateTime.cpp +++ b/src/dateTime.cpp @@ -646,6 +646,35 @@ datetime::datetime(const datetime& d) } +datetime::datetime(const time_t t, const int zone) +{ +#ifdef _REENTRANT + struct tm tms; + + if (!gmtime_r(&t, &tms)) + localtime_r(&t, &tms); +#else + struct tm* gtm = gmtime(&t); + struct tm* ltm = localtime(&t); + + struct tm tms; + + if (gtm) + tms = *gtm; + else if (ltm) + tms = *ltm; +#endif // _REENTRANT + + m_year = tms.tm_year + 1900; + m_month = tms.tm_mon + 1; + m_day = tms.tm_mday; + m_hour = tms.tm_hour; + m_minute = tms.tm_min; + m_second = tms.tm_sec; + m_zone = zone; +} + + datetime::datetime(const string& date) { parse(date); |
