我正在閱讀日誌文件,需要從某些行中提取日期和年份,然後才能使用簡單的日期格式並找出2個操作之間的平均時間。我需要日期的行的例子看起來像這樣。提取子串以使用簡單的日期格式
(INFO) [07 Feb 2013 08:04:39,161] -- ua, navigation, fault
我想不通我是否應該拆分兩行或使用子字符串函數。當我轉換成簡單日期格式(161)時,我也不認爲我需要包含最後一個數字。
我正在閱讀日誌文件,需要從某些行中提取日期和年份,然後才能使用簡單的日期格式並找出2個操作之間的平均時間。我需要日期的行的例子看起來像這樣。提取子串以使用簡單的日期格式
(INFO) [07 Feb 2013 08:04:39,161] -- ua, navigation, fault
我想不通我是否應該拆分兩行或使用子字符串函數。當我轉換成簡單日期格式(161)時,我也不認爲我需要包含最後一個數字。
考慮使用正則表達式組來提取所需的字符串。您可以使用
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);
}
我會去使用子:
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);
BTW:從/到檢查添加一些如果有效指標已被發現 - 例如對當日誌格式改變的早期發現錯誤。
如果'['不可用,你可能會得到'IndexOutOfBoundsException'。 – 2013-03-14 13:46:54
我建議你使用正則表達式從日誌文件中提取所需的數據。
161是毫秒。如果你已經有了它,也許你可以使用它... – BobTheBuilder 2013-03-14 13:44:43