带有正斜杠的自定义格式韩语日期不起作用
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
文化信息有这样一个短日期的日期模式。如果您查看此处创建的 CultureInfo
的 ShortDatePattern
属性,您将看到以下内容。
var cultureInfo = System.Globalization.CultureInfo.GetCultureInfo("ko-KR");
Console.WriteLine(cultureInfo.DateTimeFormat.ShortDatePattern);
这会打印出:yyyy-MM-dd
Fiddle: https://dotnetfiddle.net/CRxKtQ
如果您想保留在 ToString
方法中指定的模式,只需删除文化信息即可。
如果您运行以下代码: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
文化信息有这样一个短日期的日期模式。如果您查看此处创建的 CultureInfo
的 ShortDatePattern
属性,您将看到以下内容。
var cultureInfo = System.Globalization.CultureInfo.GetCultureInfo("ko-KR");
Console.WriteLine(cultureInfo.DateTimeFormat.ShortDatePattern);
这会打印出:yyyy-MM-dd
Fiddle: https://dotnetfiddle.net/CRxKtQ
如果您想保留在 ToString
方法中指定的模式,只需删除文化信息即可。