这是有效的德国日期时间文化格式吗?

时间:2018-08-28 09:49:46

标签: c# datetime cultureinfo

所以我正在使用一种API,其中以以下格式DIE, 28. AUG 2018 12:38:38

检索日期时间

我找到的最接近的日期时间格式是此ddd, dd. MMM yyyy HH:mm:ss。  仅当其DI时有效,但API将这一天作为DIE提供。

是否存在可以解析DIE, 28. AUG 2018 12:38:38的格式,我相信该API的开发人员使用了其他格式。

有人知道这可能是什么吗?

编辑:我尝试过的一些代码

static void Main(string[] args)
{
    const string DateTimeFormat = "ddd, dd. MMM yyyy HH:mm:ss";
    var deCultureInfo = new CultureInfo("de-DE");

    string input = "DIE, 28. AUG 2018 14:12:01";

    // both throws exception
    var timestamp1 = DateTime.ParseExact(input, DateTimeFormat, deCultureInfo);
    var timestamp2 = DateTime.Parse(input, deCultureInfo);


    //Console.WriteLine(DateTime.Now.ToString(deCultureInfo));

}

2 个答案:

答案 0 :(得分:8)

您可以在已使用的ddd的属性AbbreviatedDayNames中覆盖DateTimeFormatInfo

const string DateTimeFormat = "ddd, dd. MMM yyyy HH:mm:ss";
var deCultureInfo = new CultureInfo("de-DE");

var input = "DIE, 28. AUG 2018 14:12:01";

CultureInfo ci = CultureInfo.CreateSpecificCulture("de-DE");
DateTimeFormatInfo dtfi = ci.DateTimeFormat;

// addjust this to your german strings
dtfi.AbbreviatedDayNames = new[] { "SON", "MON", "DIE", "MIT", "DON", "FRE", "SAM" };

var timestamp1 = DateTime.ParseExact(input, DateTimeFormat, dtfi);

doku.

看到此内容

答案 1 :(得分:5)

仅提供另一种选择:请勿

无论那一部分是多余的。 2018年8月28日是不可能的。那里的信息对计算机没有价值。这种格式适用于人类,他们不能仅仅在几个CPU周期内“查找”。

不解析input,而仅解析input.Split(",").Last().Trim()。该API显然不是由专家编写的,也不是要供另一台计算机使用(德语日期格式,工作日,工作日的错误格式)。看起来这是显示给产品最终用户的字符串。认为它随时都有可能破坏更改,这可能是用户在特定时间“最喜欢”的情况。