如何将一年中两位数的德语日期格式转换为UTC格式?

时间:2018-10-26 14:46:09

标签: c# datetime

我的问题:我想将德语日期“ 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 :(得分:1)

您尝试过以下吗?

//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")

答案 1 :(得分:1)

您的解析很好,也许有点太具体了

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
    {

    }