【问题标题】:Parsing date form dd-MM-yyyy to dd MMM yyyy将日期格式 dd-MM-yyyy 解析为 dd MMM yyyy
【发布时间】:2019-05-29 11:10:44
【问题描述】:

我想将 dd-MM-yyyy 日期格式解析为 dd MMM yyyy 我得到了参考,但它无法以正确的方式转换日期,它与日期和月份不匹配。

假设我的日期是

string dat = "11-01-2019"

我正在使用

string date = DateTime.Parse(dat).ToString("dd MMM yyyy");

但它返回 2019 年 11 月 1 日。但实际上,它是 2019 年 1 月 11 日,因为日期的格式是 dd-MM-yyyy 我不明白如何更正它我正在使用的任何解析方法返回 2019 年 11 月 1 日,这是错误的。请帮我解决问题

【问题讨论】:

    标签: c# wpf


    【解决方案1】:

    您需要指定日期格式的文化。我在这里假设英国:

    var ukCulture = System.Globalization.CultureInfo.GetCultureInfo("en-gb");
    string dat = "11-01-2019";
    string date = DateTime.Parse(dat, ukCulture).ToString("dd MMM yyyy");
    Console.WriteLine(date);
    

    Try it online

    请注意,如果您在此处输入无效日期,您将收到FormatException,因此最好使用TryParse

    var ukCulture = System.Globalization.CultureInfo.GetCultureInfo("en-gb");
    string dat = "11-01-2019";
    DateTime parsedDate;
    if (DateTime.TryParse(dat, ukCulture, System.Globalization.DateTimeStyles.None, out parsedDate))
    {
        string date = parsedDate.ToString("dd MMM yyyy");
        Console.WriteLine(date);
    }
    else
    {
        Console.WriteLine("invalid date");
    }
    

    Try it online

    【讨论】:

      【解决方案2】:

      除了 John 的出色回答之外,这里是 CultureInfo 代码列表以供参考: http://www.csharp-examples.net/culture-names/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-01-02
        • 1970-01-01
        • 1970-01-01
        • 2021-07-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多