If you have a PRI (Primary Rate ISDN), then you have DNIS. The acronym stands for Dialed Number Information String. It is not the caller ID of the person calling you, but the number they dialed to reach you.
What you really want is ANI or Caller ID. In order to get it, you start with your telecom provider to ensure they are supplying it. If you have an analog phone line, you may have to make configuration changes to your telephony card (depending on what make/model of card you have). If you have a PRI, then *usually* the Caller ID is just included from the telco, and the default configuration of the card will suffice.
As to tell what time zone the caller is calling from... we recommend
http://www.localcallingguide.com. You can submit an HTTP query to that site and receive a response back in XML. I am not sure if the results include the time zone, but I know they include the city and state, so you should be able to figure it out.
If you use LocalCallingGuide, please please please donate to them! They operate the site for free and rely on donations to keep it running. If too many people use it without paying, it could disappear and then (to the best of my knowledge) there will be nowhere you could reasonably get the information you are seeking. If you're using it, especially for a commercial venture, do the right thing and pay it forward.