ftp веб-формат даты и времени ответа
Я пытался с помощью Ftp Web Response для доступа к файлам и сведениям каталога в C# с ASP.Net.
System.Net.WebRequestMethods.Ftp.ListDirectoryDetails
Я получил ответ как показано ниже с FTP-сервера:
01-27-17 06:54AM 14613 A J DOHMANN CHRYSLER INC.csv
09-20-18 12:27PM 122816576 ABC1Append.csv
09-12-18 08:45AM 54998269 ABC1_FileForAppend.csv
Когда я попытался отформатировать дату и время с помощью регулярного выражения ниже, я получил результат как "01-01-0001 12:00 AM"
регулярное выражение:
(?<timestamp>\\d{2}\\-\\d{2}\\-\\d{2}\\s+\\d{2}:\\d{2}[Aa|Pp][mM])\\s+(?<dir>\\<\\w+\\>){0,1}(?<size>\\d+){0,1}\\s+(?<name>.+)
Пожалуйста, помогите, как получить правильный формат даты и времени из ответа FTP.
ТИА.
1 ответ
Решение
Нет воспроизведения.
Это регулярное выражение захватывает метки времени. Следующий код:
var input=@"01-27-17 06:54AM 14613 A J DOHMANN CHRYSLER INC.csv
09-20-18 12:27PM 122816576 ABC1Append.csv
09-12-18 08:45AM 54998269 ABC1_FileForAppend.csv";
var pattern="(?<timestamp>\\d{2}\\-\\d{2}\\-\\d{2}\\s+\\d{2}:\\d{2}[Aa|Pp][mM])\\s+(?<dir>\\<\\w+\\>){0,1}(?<size>\\d+){0,1}\\s+(?<name>.+)";
var rex=new Regex(pattern);
var ts=rex.Match(input).Groups["timestamp"].Value;
Возвращает
01-27-17 06:54AM
Я подозреваю, что какой-то другой код пытается проанализировать эту строку, завершается неудачно и возвращает значение DateTime по умолчанию.
Эта строка может быть проанализирована, например:
DateTime.Parse(ts,CultureInfo.GetCultureInfo("en-US"));
или же
if(DateTime.TryParse(ts,CultureInfo.GetCultureInfo("en-US"),DateTimeStyles.None,out var dt))
{
Console.WriteLine(dt);
}
else
{
//Parsing failed!
}