This week's book giveaway is in the OCAJP 8 forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide and have Edward Finegan & Robert Liguori on-line! See this thread for details.
What is your exact question? Your subject line is not related to your actual post.
The answer to the question in your subject line is simple: you can't. The reason is quite clear: a time zone does not have a specific country; many time zones are used in multiple countries. For instance, CET spans half of Europe.
About your second question: you say you have the offset, right? You can then create an instance of SimpleTimeZone using that offset.
No you can't. Two good examples: the United States and Russia both span multiple time zones. In the end, there is a many-to-many relation between countries and time zones: a time zone can span multiple countries, and a country can span multiple time zones. The only way to get the correct time zone is to know the exact location; that is, the longitude and latitude. Some time zones do not run in parallel with meridians, so only the longitude is not enough.