Looks like Pakistan had daylight saving time in 2002, but not after
that anymore. Probably your timezone definition files are last
updated in 2002 and therefore think that daylight saving time should
still be observed.
To fix this you need to update the timezone definition file. To do
that copy the lines at the bottom of this message to a temporary
file and as root say "zic filename", which reads the file and
converts it to a compiled timezone file and installs it for you
(the final location is probably /usr/share/zoneinfo/Asia/Karachi).
And to be sure, after running the zic-command, reselect your
timezone with your OS's timezone selection utility.
Make sure you copy all lines below and that they don't wrap to
the following line. It doesn't matter if the amount of whitespace
within a line changes, as long as there is at least one
space between each item on a line. There should be 10 lines in
the resulting file. If the rules change again, you can get
updated timezone information from
(this is from there).
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Pakistan 2002 only - Apr Sun>=2 0:01 1:00 S
Rule Pakistan 2002 only - Oct Sun>=2 0:01 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Asia/Karachi 4:28:12 - LMT 1907
5:30 - IST 1942 Sep
5:30 1:00 IST 1945 Oct 15
5:30 - IST 1951 Sep 30
5:00 - KART 1971 Mar 26 # Karachi Time
5:00 Pakistan PK%sT # Pakistan Time