See this:
proc format;
invalue ustz
"AST" = 14400 /* ATLANTIC STANDARD TIME UTC - 4 */
"EST" = 18000 /* EASTERN STANDARD TIME UTC - 5 */
"EDT" = 14400 /* EASTERN DAYLIGHT TIME UTC - 4 */
"CST" = 21600 /* CENTRAL STANDARD TIME UTC - 6 */
"CDT" = 18000 /* CENTRAL DAYLIGHT TIME UTC - 5 */
"MST" = 25200 /* MOUNTAIN STANDARD TIME UTC - 7 */
"MDT" = 21600 /* MOUNTAIN DAYLIGHT TIME UTC - 6 */
"PST" = 28800 /* PACIFIC STANDARD TIME UTC - 8 */
"PDT" = 25200 /* PACIFIC DAYLIGHT TIME UTC - 7 */
"AKST" = 32400 /* ALASKA TIME UTC - 9 */
"AKDT" = 28800 /* ALASKA DAYLIGHT TIME UTC - 8 */
"HST" = 36000 /* HAWAII STANDARD TIME UTC - 10 */
"HAST" = 36000 /* HAWAII-ALEUTIAN STANDARD TIME UTC - 10 */
"HADT" = 32400 /* HAWAII-ALEUTIAN DAYLIGHT TIME UTC - 9 */
"SST" = 39600 /* SAMOA STANDARD TIME UTC - 11 */
"SDT" = 36000 /* SAMOA DAYLIGHT TIME UTC - 10 */
"CHST" = -36000 /* CHAMORRO STANDARD TIME UTC +10 */
other = 0
;
data want;
infile datalines;
input dttime e8601dt16. zone :$4.;
format dttime e8601dt19.;
dttime = dttime + input(zone,ustz.);
drop zone;
datalines;
2020-07-14 11:00 EDT
;
The result will be the datetime in UTC.
... View more