VxWorks RTC time giving wrong value at random times

I am seeing a scenario where in if the TIMEZONE environment variable value is set to nothing i.e. putenv "TIMEZONE=" the hardware clock is +1 to software clock.Pasted below the results displayed:

-> envShow 
(global environment) 
0: TSC_TIME_FROM_RESET=420150.971529 seconds 
1: RTAC_OS_LABEL=RTAC9_VXOS2.0.2 
2: RTAC_OS_VERSION=Wind River Systems - vxWorks 6.8.3 
3: RTAC_OS_DATE=May  6 2014, 17:00:30 
4: BIOS_VENDOR=American Megatrends Inc. 
5: BIOS_ID1=080015 
6: BIOS_DATE=01/23/2014 
7: BIOS_VERSION=125WXQ13 
8: BIOS_ID2=**** PCE-5125W BIOS Q1.10 (01/ 
9: CPU_FREQUENCY=3066000000 
10: BOARD_TYPE=GITANEMEM 
11: IP_BOARD_TYPE=DIPB 
12: ETHERNET_BOARD=GEI 
13: FCIB_BOARD=FCIB 
14: RTAC_MEMORY_SIZE=1913 
15: ATA_SERIAL_NUMBER=            Z3TKB9KD 
16: ATA_REVISION_NUMBER=KC45 
17: ATA_MODEL_NUMBER=ST250DM000-1BD141 
18: NETWORK_IF_NAME=gei0 
19: SUB_BOARD_TYPE=GITANE9 
20: GITANE_FPGA_LEN=166965 
21: GITANE_FWFILE=gitane9.hex 
22: GE_PCI_DEVICE_ID=21555 
23: GE_PCI_VENDOR_ID=6070 
24: GITANE_PCI_FW=Rev.57 
25: LOAD_CONFIG_FILE=1 
26: SET_IP_ADDRESS=1 
27: SUBNET_MASK=0xffff0000 
28: BROADCAST_ADDRESS=3.204.255.255 
29: LOAD_APPLICATIONS_FILE=1 
30: TIMEZONE= 
31: GMT::0:0:0 
32:  TIMEZONE=CSTCDT::360:0:0 
value = 0 = 0x0 
-> 
-> printLocalTime 
Current Software time is: MON JAN 19 14:01:51 2015 
value = 6532128 = 0x63ac20 = ' ' = std::cout 
-> printRTTime 
Current Hardware time is: MON JAN 19 15:01:53 2015 

value = 6532128 = 0x63ac20 = ' ' = std::cout 

But after reboot I ma seeing both hardware and software clock are same even though I am setting the TIMEZONE environment variable to nothing. Below is the output I got after reboot:

-> envShow 
(global environment) 
0: TSC_TIME_FROM_RESET=853965.694892 seconds 
1: RTAC_OS_LABEL=RTAC9_VXOS2.0.2 
2: RTAC_OS_VERSION=Wind River Systems - vxWorks 6.8.3 
3: RTAC_OS_DATE=May  6 2014, 17:00:30 
4: BIOS_VENDOR=American Megatrends Inc. 
5: BIOS_ID1=080015 
6: BIOS_DATE=01/23/2014 
7: BIOS_VERSION=125WXQ13 
8: BIOS_ID2=**** PCE-5125W BIOS Q1.10 (01/ 
9: CPU_FREQUENCY=3066000000 
10: BOARD_TYPE=GITANEMEM 
11: IP_BOARD_TYPE=DIPB 
12: ETHERNET_BOARD=GEI 
13: FCIB_BOARD=FCIB 
14: RTAC_MEMORY_SIZE=1913 
15: ATA_SERIAL_NUMBER=            Z3TKB9KD 
16: ATA_REVISION_NUMBER=KC45 
17: ATA_MODEL_NUMBER=ST250DM000-1BD141 
18: NETWORK_IF_NAME=gei0 
19: SUB_BOARD_TYPE=GITANE9 
20: GITANE_FPGA_LEN=166965 
21: GITANE_FWFILE=gitane9.hex 
22: GE_PCI_DEVICE_ID=21555 
23: GE_PCI_VENDOR_ID=6070 
24: GITANE_PCI_FW=Rev.57 
25: LOAD_CONFIG_FILE=1 
26: SUBNET_MASK=0xfffffc00 
27: SET_IP_ADDRESS=1 
28: BROADCAST_ADDRESS=3.204.31.255 
29: LOAD_APPLICATIONS_FILE=1 
30: TIMEZONE= 
value = 0 = 0x0 
-> putenv "TIMEZONE=" 
value = 0 = 0x0 
-> printRTTime 
Current Hardware time is: TUE JAN 20 19:54:45 2015 
value = 6532128 = 0x63ac20 = ' ' = std::cout 
-> printLocalTime 
Current Software time is: TUE JAN 20 19:54:51 2015 

value = 6532128 = 0x63ac20 = ' ' = std::cout 

why is there a discrepancy in hardware clock for the same value set for TIMEZONE environment variable.
why is the hardware clock considering the TIMEZONE as it should display UTC.

Any suggestions in this reagrd will be of great help.

Thanks,
Sneha