0

ログファイルを読んでいて、単純な日付形式を使用して2つのアクション間の平均時間を調べるために、特定の行から日付と年を抽出する必要があります。日付が必要な行の例は次のようになります。

(INFO ) [07 Feb 2013 08:04:39,161] -- ua, navigation, fault

行を 2 回分割する必要があるのか​​、部分文字列関数を使用する必要があるのか​​ わかりません。また、単純な日付形式 (161) に変換するときに、最後の数字を含める必要はないと思います。

4

3 に答える 3

1

正規表現を使用して、ログ ファイルから必要なデータを抽出することをお勧めします。

于 2013-03-14T13:47:36.390 に答える
0

正規表現グループを使用して、必要な文字列を抽出することを検討してください。使用できます

Pattern p = Pattern.compile("you regex pattern with () around the bit you wanna extract");
Matcher m = p.matcher(theLine);
if (m.find()) {
    String date =  m.group(1);
}
于 2013-03-14T13:56:37.330 に答える
0

私は部分文字列を使用するために行きます:

final int from = line.indexOf('[') + 1;
final int to = line.indexOf(']', from); // or , if you do not want to have the last number included
final String timestampAsString = line.substring(from, to);

ところで:有効なインデックスが見つかったかどうかをチェックするfrom / toをいくつか追加します。たとえば、ログ形式が変更されたときにエラーを早期に検出します。

于 2013-03-14T13:43:53.630 に答える