#3509: fix dst and utcOffset handling for Dublin time zone

This commit is contained in:
Günter Obiltschnig
2022-03-27 21:25:51 +02:00
parent 1b5de92f09
commit 6aa29ade17
5 changed files with 110 additions and 55 deletions

View File

@@ -32,32 +32,44 @@ public:
static int utcOffset();
/// Returns the offset of local time to UTC, in seconds.
/// local time = UTC + utcOffset() + dst().
static int dst();
/// Returns the daylight saving time offset in seconds if
/// daylight saving time is in use.
/// local time = UTC + utcOffset() + dst().
static bool isDst(const Timestamp& timestamp);
/// Returns true if daylight saving time is in effect
/// for the given time. Depending on the operating system
/// platform this might only work reliably for certain
/// date ranges, as the C library's localtime() function
/// is used.
static int tzd();
/// Returns the time zone differential for the current timezone.
/// The timezone differential is computed as utcOffset() + dst()
/// and is expressed in seconds.
static std::string name();
/// Returns the timezone name currently in effect.
static std::string standardName();
/// Returns the timezone name if not daylight saving time is in effect.
static std::string dstName();
/// Returns the timezone name if daylight saving time is in effect.
#if !defined(POCO_OS_FAMILY_WINDOWS)
static int utcOffset(const Poco::Timestamp& timestamp);
/// Returns the offset of local time to UTC
/// for the given time, in seconds.
/// local time = UTC + utcOffset() + dst().
static int dst(const Poco::Timestamp& timestamp);
/// Returns the daylight saving time offset in seconds if
/// daylight saving time is in use for the given time.
/// local time = UTC + utcOffset() + dst().
#endif
};