私はPerlスクリプトを実行してデータベースにアクセスする必要がある2つのLinuxマシンを持っています。
によって報告された日付 date
そして date -u
(数分以内に)正しいですが、Perlからエポックを返すことには1時間の違いがあり、一方のマシンではUTCのエポックタイムスタンプを持ち、もう一方では必要なCETを持ちます。
Aの日付:
Tue Dec 11 13:34:09 CET 2012
Bの日付:
Tue Dec 11 13:33:20 CET 2012
このスクリプトはTime :: HiResを使用してlocaltime->エポックを収集して日付を生成します。 動作を出力するための最小限の次のスクリプトを作成します。
#/usr/bin/perl
#
use Time::HiRes qw(time);
use Time::Piece;
#
my $date = Time::Piece->strptime(localtime->epoch,"%s");
print "$date->datetime"."\n";
print $date->tzoffset."\n";
print $date->epoch."\n";
出力機A:
Tue Dec 11 12:35:43 2012->datetime
0
1355229343
出力機B:
Tue Dec 11 13:34:25 2012->datetime
0
1355232865
あなたが見るように何かが間違っているにちがいない、おそらくタイムゾーンか何かが似ている。しかし、どこを見ればいいのか、何を設定すればよいのかわかりません。 date
それ自体が正しい時刻を出力します。
BIOSで時間を調整するだけではどうですか?これは「タイムゾーン」の問題ではありません。これは、1分11秒しか違いがないことからも明らかです。
—
Ramhound
申し訳ありませんが、質問を注意深く読んでいないか、明確にしていないかのどちらかです。エポックタイムスタンプを見てください - >これらは1時間で異なるものですが、どのマシンにもタイムゾーンオフセットは設定されていません。
—
Stefan
私は質問を読み、時間は1分11秒違います。
—
Ramhound
CET
。 perlスクリプトの出力に基づいて、設定に違いがあると思います。
dateの出力は分だけで変わるかもしれません、そして、これは大丈夫です。しかし、perlスクリプトの出力は1時間以上異なります。これは設定の違いかもしれません - どこに問題があるのかわからないのですが:-(。 'locale'は両方の機種で同じです。
—
Stefan
する
—
David Schwartz
date -u
(数分以内に)両方のマシンで正しい値を返しますか?