Acho que está tirando seu + x
como um especificador de fuso horário (por exemplo, considere 2013-04-25 19:52:36 +4
é um carimbo de data e hora válido em um fuso horário quatro horas à frente de UTC).
É então ver a palavra "minutos" e tratá-la como sinônimo de minuto, dando-lhe um minuto depois.
Se você inserir um especificador de fuso horário explícito, ele funcionará:
anthony@Zia:~$ TZ=utc date -d "1970-01-01 00:00:00 UTC" +"%s"
0
anthony@Zia:~$ TZ=utc date -d "1970-01-01 00:00:00 UTC + 0 minutes" +"%s"
0
anthony@Zia:~$ TZ=utc date -d "1970-01-01 00:00:00 UTC + -1 minutes" +"%s"
-60
anthony@Zia:~$ TZ=utc date -d "1970-01-01 00:00:00 UTC + 1 minutes" +"%s"
60
Observe o campo UTC
após o segundo. Você também pode colocar um segundo +0
:
anthony@Zia:~$ TZ=utc date -d "1970-01-01 00:00:00 +0 + -1 minutes" +"%s"
-60
... mas pelo menos pessoalmente, é muito mais difícil de ler.
Ou você pode colocar um Z
após os segundos, etc. Na verdade, você não precisa que a variável de ambiente TZ
seja definida como UTC nos exemplos acima.