I was working with some timezone code when I noticed this ambiguity. When trying to get the tzname for Asia/Singapore, I get the UTC Offset. If I do the same with Asia/Kolkata, I get the correct timezone name - IST.
pytz.timezone('Asia/Singapore').tzname(datetime.now())
'+08'
pytz.timezone('Asia/Kolkata').tzname(datetime.now())
'IST'
Is there a reason for this ambiguity and is there a workaround that will give me the actual timezone code i.e. SGT?