Как я могу преобразовать немецкий формат даты с двумя цифрами в году в формат UTC? - PullRequest
0 голосов
/ 26 октября 2018

Моя проблема: я хочу преобразовать немецкую дату "24.05.05" в формат UTC "2005-05-24". В немецком формате даты «24.05.05» две последние цифры обозначают 2005 год.

Вот мой код, который не работает:

var lGermanDate = "24.05.05";
DateTime lOutDateTime;
CultureInfo lCultureInfo = new CultureInfo("de-de");

// expecting result to fail
if (DateTime.TryParseExact(lGermanDate, lCultureInfo.DateTimeFormat.ShortDatePattern, lCultureInfo, DateTimeStyles.None, out lOutDateTime))
{
    var lTargetDate = lOutDateTime.ToString("yyyy-m-d");
}
else
{
    [...]
}

Примечание: в PHP это работает со следующим кодом:

\DateTime::createFromFormat('d.m.y', $lGermanDate )->format('Y-m-d');

Ответы [ 2 ]

0 голосов
/ 26 октября 2018

Ваш анализ в порядке, может быть, слишком конкретный

m - минуты - это шаблоны DateTime.ToString (), M - месяц

var germanDateStr = "24.05.05";

    if (DateTime.TryParse(germanDateStr, out DateTime outDateTime))
    {
        var targetDate = outDateTime.ToString("yyyy-M-d");

        targetDate.Dump();
    }
    else
    {

    }
0 голосов
/ 26 октября 2018

Вы пробовали следующее?

//To Convert lGermanDate into DateTime
string DATEPATTERN = "dd.MM.yy";

DateTime.TryParseExact(lGermanDate, DATEPATTERN, null, DateTimeStyles.None, out DateTime outGermanDate);

//From outGermanDate to UTC Format
string dateUTC = outGermanDate.ToString("yyyy-MM-dd")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...