带有正斜杠的自定义格式韩语日期不起作用

Custom format Korean date with forward-slash not working

如果您运行以下代码:https://dotnetfiddle.net/kBqe9x

using System;
                    
public class Program
{
    public static void Main()
    {
        var date = DateTime.Now;
        Console.WriteLine(date.ToString("yyyy/MM/dd", System.Globalization.CultureInfo.GetCultureInfo("ko-KR")));
    }
}

结果将是 2022-01-18

为什么 .net 将正斜杠替换为破折号?

正斜杠是一个特殊字符,在 DateTime 中你必须这样写 '/'

using System;
                    
public class Program
{
    public static void Main()
    {
        var date = DateTime.Now;
        Console.WriteLine(date.ToString("yyyy'/'MM'/'dd", System.Globalization.CultureInfo.GetCultureInfo("ko-KR")));
    }
}

那是因为 ko-KR 文化信息有这样一个短日期的日期模式。如果您查看此处创建的 CultureInfoShortDatePattern 属性,您将看到以下内容。

var cultureInfo = System.Globalization.CultureInfo.GetCultureInfo("ko-KR");
Console.WriteLine(cultureInfo.DateTimeFormat.ShortDatePattern);

这会打印出:yyyy-MM-dd

Fiddle: https://dotnetfiddle.net/CRxKtQ

如果您想保留在 ToString 方法中指定的模式,只需删除文化信息即可。