しばらくインターネットを検索しましたが、正しい答えが見つからないようです(あるかもしれませんが、わかりません)。
ファイルを読み取って日時を取得するためのこのコードがあります(タスクスケジューラクエリから)。
File.txt は、タスク スケジューラ クエリを保持します。
"TaskName","Next Run Time","Status"
"CheckFile","20:33:00, 17/1/2013",""
=======================================
次の実行時の値を読み取るスクリプト。
open (FILE, "<", $file) || print "WARN: Cannot open $file: $!";
@logLines = <FILE>;
if (@list = grep(/\b$keyword\b/, @logLines)) {
foreach(@list){$result = $_;}
my @sresult = split(/(?<="),(?=")/, $result);
$name = $sresult[0];
$name =~ tr/"//d;
$next_run = $sresult[1];
$next_run =~ tr/"//d;
print $next_run;
}
@list=();
@dFormat=();
@logLines=();
close FILE;
出力は次のようになります。
20:33:00, 17/1/2013
出力を次のように変更したい:
20:33:00, 2013-1-17 #note that I can do this just by splitting up and rearranging the numbers.
しかし、問題は、タスク スケジューラ クエリの 17/1/2013 がロケールに依存していることです。それは次のようになります。
- 2013/1/17
- 2013/1/17
- 2013/1/17
- 1/17/13
- 17/1/13
- 13/1/17
- 2013 年 1 月 17 日
- 2013 年 1 月 17 日
- 2013年1月17日
- 1-17-13
- 17-1-13
- 13-1-17
- 2013.1.17
- 17.1.2013
- 2013.1.17
- 1.17.13
- 17.1.13
- 13.1.17
私がやりたいことができる cpan モジュールはありますか? これを達成する方法のスクリプトを教えてください。
厳しいコメントはご遠慮ください。ありがとう。