Получить дату Dec 8 01:19:58 из лога mikrotik

C Sharp > Получить дату Dec 8 01:19:58 из лога mikrotik
08.12.2017 18:54:34


Наиболее часто встречающиеся слова в статье:

[//-----------------] [Matches] [RegexOptions] [IgnoreCase] [ToArray] [//получить] [Получим] [datas_new] [newData] [DateTime]


Статья:

internal object Get_datas(string datas_new)
{
string newData = "";
// получим дату из лога вида Dec 8 01:19:58 mikrotik.iocsha firewall,info Warning_Block_ScanerIP кусок содержания Dec 8 01:19:58
const string myReg12 = @"\b\S*(\S{2,3})( {1,3})([0-9]{1,2})( {1,3})([0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2})\S*";
//string datas_new = "Dec 8 01:19:58 mikrotik.iocsha firewall,info Warning_Block_ScanerIP_ input: in:pppoe-out1 out:(none), proto TCP (SYN), 5.188.10.176:47999->95.55.170.243:22, len 60 ";
string vdatas = "";
var arr0 = Regex.Matches(datas_new, myReg12, RegexOptions.IgnoreCase)
.Cast<Match>()
.Select(m => m.Value)
.ToArray();
if (arr0.Length > 0)
{
//получить время
vdatas = arr0[0] ;
}
else
vdatas = "";
 
//----------------- Получим месяц из лога
const string myReg1 = @"\b\S*(\S{2,3})\S*";
string vMec = "";
var arr1 = Regex.Matches(vdatas, myReg1, RegexOptions.IgnoreCase)
.Cast<Match>()
.Select(m => m.Value)
.ToArray();
if (arr1.Length > 0)
{
//получить время
vMec = arr1[0];
}
else
vMec = "";
//-----------------
 
 
//----------------- Получим день из лога
const string myReg2 = @"\b\S*([0-9]{1,2})\S*";
string vDay = "";
var arr2 = Regex.Matches(vdatas, myReg2, RegexOptions.IgnoreCase)
.Cast<Match>()
.Select(m => m.Value)
.ToArray();
if (arr2.Length > 0)
{
//получить время
vDay = arr2[0];
}
else
vDay = "";
//-----------------
 
//----------------- Получим время из лога
const string myReg3 = @"\b\S*([0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2})\S*";
string vVrem = "";
var arr3 = Regex.Matches(vdatas, myReg3, RegexOptions.IgnoreCase)
.Cast<Match>()
.Select(m => m.Value)
.ToArray();
if (arr3.Length > 0)
{
//получить время
vVrem = arr3[0];
}
else
vVrem = "";
//-----------------
 
//------- Получим текущий год
string vYear = DateTime.Today.Year.ToString();
//----------------
string dataTmp = vDay + " " + vMec + " " + vYear + " " + vVrem;
// соберём дату из кусочков и преобразуем её в правильный формат из 1 May 2008 2:57:32
DateTime dateValue;
DateTime.TryParse(dataTmp, out dateValue);
newData = dateValue.ToString();
//DateTime.TryParse(datas, out da);
return newData;
}