use POSIXlt to deal with timezone