how to read time zone information

Well, it depends what you want to read it for?

Almost all programs just rely on $TZ being set in the environment or /etc/localtime being a link to a timezone file. The C library will then automatically arrange for eg localtime() to return the correct time.

1) How can I basically read above type of files

zdump -v /etc/localtime will show you what's inside the files.

These are compiled files not meant for humans to read. apt-get source tzdata will give you the source they come from.

2) Where is TZ environment variable defined in Ubuntu 10.04

It is not set by default. Instead, /etc/localtime is a copy of the relevant zoneinfo file, and /etc/timezone is the name of that zone.

You can change them with sudo tzconfig or through the GUI.

You could set it in for instance ~/.env if you want a different personal default for yourself.