ftp веб-формат даты и времени ответа - PullRequest
0 голосов
/ 20 февраля 2019

Я пытался с помощью 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 Ответ

0 голосов
/ 20 февраля 2019

Нет воспроизведения.

Это регулярное выражение действительно захватывает метки времени.Следующий код:

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 по умолчанию.

Thisстрока может быть проанализирована, например:

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!
}
...