Si el tiempo absoluto es su principal preocupación, probablemente sea mejor trabajar fuera de UTC, ya que existe para ese propósito. La respuesta de Michael es muy útil para cuando tienes que trabajar dentro del problema, pero generalmente es una buena idea evitarlo por completo donde puedas.
Cuando su sistema no está configurado en UTC de manera predeterminada, la forma más simple de pasar la zona horaria es anteponiendo su comando con la TZ
variable de entorno. Esto limita el cambio de zona a un solo comando y evita que la variable se filtre en los comandos posteriores.
$ NOW=$(date '+%s')
$ date -d @$NOW
Wed Jun 11 23:44:35 EDT 2014
$ TZ=UTC date -d @$NOW
Thu Jun 12 03:44:35 UTC 2014
Lo que no debe hacer es exportar la TZ
variable, ya que esto puede hacer que las cosas sean muy confusas para solucionar problemas, como lo demuestra lo siguiente.
$ export TZ=UTC
$ date -d @$NOW
Thu Jun 12 03:44:35 UTC 2014
$ TZ=EDT date -d @$NOW
Thu Jun 12 03:44:35 EDT 2014
date
...