natSystem.cc (getSystemTimeZone): Only use tm_gmtoff and timezone if they are available on the system.
* java/lang/natSystem.cc (getSystemTimeZone): Only use tm_gmtoff and timezone if they are available on the system. From-SVN: r39283
This commit is contained in:
parent
0604c15675
commit
5bb1db008c
@ -1,3 +1,8 @@
|
||||
2001-01-26 Warren Levy <warrenl@redhat.com>
|
||||
|
||||
* java/lang/natSystem.cc (getSystemTimeZone): Only use tm_gmtoff
|
||||
and timezone if they are available on the system.
|
||||
|
||||
2001-01-24 Tom Tromey <tromey@redhat.com>
|
||||
|
||||
* java/lang/sf_fabs.c: Use uint32_t, not __uint32_t.
|
||||
|
@ -240,15 +240,28 @@ getpwuid_adaptor(T_passwd * (*getpwuid_r)(T_uid user_id, T_passwd *pwd_r,
|
||||
jstring
|
||||
java::lang::System::getSystemTimeZone (void)
|
||||
{
|
||||
struct tm *tim;
|
||||
time_t current_time;
|
||||
char **tzinfo, *tzid;
|
||||
long tzoffset;
|
||||
|
||||
current_time = time(0);
|
||||
|
||||
mktime(localtime(¤t_time));
|
||||
mktime(tim = localtime(¤t_time));
|
||||
#ifdef STRUCT_TM_HAS_GMTOFF
|
||||
tzoffset = -(tim->tm_gmtoff); // tm_gmtoff is secs EAST of UTC.
|
||||
#elif HAVE_TIMEZONE
|
||||
tzoffset = timezone; // timezone is secs WEST of UTC.
|
||||
#else
|
||||
// FIXME: there must be another global if neither tm_gmtoff nor timezone
|
||||
// is available, esp. if tzname is valid.
|
||||
// Richard Earnshaw <rearnsha@arm.com> has suggested using difftime to
|
||||
// calculate between gmtime and localtime (and accounting for possible
|
||||
// daylight savings time) as an alternative. Also note that this same
|
||||
// issue exists in java/util/natGregorianCalendar.cc.
|
||||
tzoffset = 0L;
|
||||
#endif
|
||||
tzinfo = tzname;
|
||||
tzoffset = timezone;
|
||||
|
||||
if ((tzoffset % 3600) == 0)
|
||||
tzoffset = tzoffset / 3600;
|
||||
|
Loading…
Reference in New Issue
Block a user