Как установить ту же дату / время для среды Perl? - PullRequest
0 голосов
/ 04 февраля 2020

У нас есть 2 среды: старая (CentOS 6.9) и новая (Debian 10).

Также у нас есть этот скрипт:

#!/usr/bin/perl
use Time::ParseDate;
$seconds = parsedate('Jan 1, 1970');
print "$seconds\n";

В старой среде выдает следующее:

[user@old ~]$ ./test.pl
1577829600

И, Он производит следующее в новой среде:

user@new:~$ ./test.pl
-10800

Как мы исправим это так, что test.pl будет выводить так же, как в старой среде? Также, пожалуйста, поделитесь ссылкой (ссылками), чтобы прочитать об этой разнице.

1 Ответ

2 голосов
/ 04 февраля 2020

1577829600 - это количество секунд между 2019-12-31T22:00:00Z и unix эпохой (1970-01-01T00:00:00Z).

Если вы пытаетесь получить количество секунд с unix эпохи вы можете использовать встроенный time.

$ perl -e'CORE::say time'
1580776856

С другой стороны, если вы пытаетесь получить время эпохи 1 января текущего года вашего местного часовой пояс, вы можете использовать parsedate('Jan 1').

...