There are three ways to specify TimeZone in PostgreSQL. You are using the third option and thus are dealing with the caveats noted in the third entry's description and described in detail in the appendix linked to above.
I suggest restricting your use to one of the other two, recommended, options. If you cannot avoid using the third option you must learn and abide by its rules.