日期格式名称 "dd day of MMMM, yyyy"
Name for date format "dd day of MMMM, yyyy"
我在一个对 .NET 支持最少的平台上工作,所以我们经常不得不为日期、字符串等推出我们自己的实用方法。整个团队都有 .NET 背景,所以我们尝试命名这些familiar/suggestive 类似的 .NET 方法。
我们处理了很多法律术语,最后以特定方式写下日期:“this 5th day of March, 2020”。我需要编写一个接受日期的函数,并且 returns 它的格式是这样的。
.NET 语言中是否有现有 日期时间格式:“MMMM 的第 3 天,yyyy”?我不能使用那个,但我更愿意使用那个 name。我在文档中找不到,但我可能遗漏了它。
如果没有,是否有这种格式的通用术语,也许来自其他通用语言?
我知道这不是严格意义上的代码问题,但如果我在 English.StackExchange 询问,他们会抱怨它与代码相关。
据我所知,没有built-in格式化表达式可以满足您的要求,但是编写一个扩展来一劳永逸地进行格式化并不是很复杂。
最重要的是当您需要将它们作为简单文本时,正确转义所有通常用于日期格式的字母
例如:
public static string LegalDateFormat(this DateTime d)
{
int day = d.Day;
string suffix = (day == 1 ? "\s\t" : day == 2 ? "n\d" : day == 3 ? "r\d": "\t\h");
// string format = $"\t\hi\s i\s \t\he d{suffix} \da\y o\f MMMM, yyyy";
// better, as proposed by Hans Kesting in his comment below
string format = $"'this is the 'd'{suffix} day of 'MMMM, yyyy";
return d.ToString(format);
}
当然,日期时间格式非常依赖于当前的全球化设置,这可能仅适用于英语文化。如果您需要支持不同的文化,那么这还不够,可能有一些库可以为您提供更好的解决方案
使用1st 2nd称为序号指示符。
.net 框架中没有对这个概念的内置支持,因为它只适用于几种语言。反过来,您要求的格式不直接受支持。
您可以自己构建它或查看旨在填补这一空白的人性化项目https://github.com/Humanizr/Humanizer#datetime-to-ordinal-words
我在一个对 .NET 支持最少的平台上工作,所以我们经常不得不为日期、字符串等推出我们自己的实用方法。整个团队都有 .NET 背景,所以我们尝试命名这些familiar/suggestive 类似的 .NET 方法。
我们处理了很多法律术语,最后以特定方式写下日期:“this 5th day of March, 2020”。我需要编写一个接受日期的函数,并且 returns 它的格式是这样的。
.NET 语言中是否有现有 日期时间格式:“MMMM 的第 3 天,yyyy”?我不能使用那个,但我更愿意使用那个 name。我在文档中找不到,但我可能遗漏了它。
如果没有,是否有这种格式的通用术语,也许来自其他通用语言?
我知道这不是严格意义上的代码问题,但如果我在 English.StackExchange 询问,他们会抱怨它与代码相关。
据我所知,没有built-in格式化表达式可以满足您的要求,但是编写一个扩展来一劳永逸地进行格式化并不是很复杂。
最重要的是当您需要将它们作为简单文本时,正确转义所有通常用于日期格式的字母
例如:
public static string LegalDateFormat(this DateTime d)
{
int day = d.Day;
string suffix = (day == 1 ? "\s\t" : day == 2 ? "n\d" : day == 3 ? "r\d": "\t\h");
// string format = $"\t\hi\s i\s \t\he d{suffix} \da\y o\f MMMM, yyyy";
// better, as proposed by Hans Kesting in his comment below
string format = $"'this is the 'd'{suffix} day of 'MMMM, yyyy";
return d.ToString(format);
}
当然,日期时间格式非常依赖于当前的全球化设置,这可能仅适用于英语文化。如果您需要支持不同的文化,那么这还不够,可能有一些库可以为您提供更好的解决方案
使用1st 2nd称为序号指示符。
.net 框架中没有对这个概念的内置支持,因为它只适用于几种语言。反过来,您要求的格式不直接受支持。
您可以自己构建它或查看旨在填补这一空白的人性化项目https://github.com/Humanizr/Humanizer#datetime-to-ordinal-words