Resposta curta
Os utilitários GNU usam o banco de dados tz que contém uma representação dos fusos horários atuais, futuros e históricos e transformam a saída de acordo.
Resposta longa
Execute info coreutils 'date input formats'
se você tiver o manual completo instalado e lido para o contexto e, especificamente, leia 28.10 Especificando regras de fuso horário . Se o manual não estiver instalado, leia-o leia on-line .
Apêndice
Datas, hora e fuso horário são muito complicados para acompanhar :-).