Work around Android KitKat tzset bug
On KitKat, calling tzset with UTC+nn doesn't initialize all the timezone state. If the previous timezone was something like America/Chicago, then changing it to UTC+nn might have no effect. Setting the timezone to an intermediate value like "UTC" avoids the problem. Works around https://github.com/android/ndk/issues/1604. PiperOrigin-RevId: 413050236 Change-Id: I99b2d3330ae68f1d58cd2ca278d3eaae30bd1e83
This commit is contained in:
parent
e2f3978937
commit
bb9216085f
@ -450,6 +450,12 @@ class FormatEpochTimeInMillisAsIso8601Test : public Test {
|
|||||||
tzset();
|
tzset();
|
||||||
GTEST_DISABLE_MSC_WARNINGS_POP_()
|
GTEST_DISABLE_MSC_WARNINGS_POP_()
|
||||||
#else
|
#else
|
||||||
|
#if GTEST_OS_LINUX_ANDROID && __ANDROID_API__ < 21
|
||||||
|
// Work around KitKat bug in tzset by setting "UTC" before setting "UTC+00".
|
||||||
|
// See https://github.com/android/ndk/issues/1604.
|
||||||
|
setenv("TZ", "UTC", 1);
|
||||||
|
tzset();
|
||||||
|
#endif
|
||||||
if (time_zone) {
|
if (time_zone) {
|
||||||
setenv(("TZ"), time_zone, 1);
|
setenv(("TZ"), time_zone, 1);
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
Reference in New Issue
Block a user