c# - 如何在 c# 中生成像 "1st November"这样的日期格式

我怎样才能得到下面提到的 c# 中的日期格式。

  • 对于 2010 年 11 月 1 日,应显示为:11 月 1 日

  • 对于 2010 年 11 月 30 日,应显示为:11 月 30 日

我们可以使用任何日期格式或制作一个自定义函数,返回 1 -> 'st', 2-> 'nd' 3-> 'rd', any date no -> 'th'。

最佳答案

以下代码基于 answer从整数生成序数:

public static string ToOrdinal(int number)
{
    switch(number % 100)
    {
        case 11:
        case 12:
        case 13:
            return number.ToString() + "th";
    }

    switch(number % 10)
    {
        case 1:
            return number.ToString() + "st";
        case 2:
            return number.ToString() + "nd";
        case 3:
            return number.ToString() + "rd";
        default:
            return number.ToString() + "th";
    }
}

你可以生成你的输出字符串:

public static string GenerateDateString(DateTime value)
{
    return string.Format(
        "{0} {1:MMMM}",
        ToOrdinal(value.Day),
        value);            
}

关于c# - 如何在 c# 中生成像 "1st November"这样的日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4544256/

相关文章:

python - !r 在 str() 和 repr() 中做了什么?

formatting - Dart 中的货币格式

postgresql - 如何为 PostgreSQL 设置千位分隔符?

java - 内置字符串格式与字符串连接作为日志记录参数

c# - 格式化跟踪输出

linux - 使用 *nix 中的 column 命令格式化列表

javascript - 在 JavaScript 源代码中自动插入分号的实用程序?

java - 清理大型遗留 Java 项目

html - 使 HTML 输出 R 中的粗体文本 Shiny

ide - 保存文件时禁用重新格式化代码