You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将DateTime对象转换为英文文字格式日期?

将DateTime对象转换为英文文字格式日期

下面针对几种主流编程语言,给出具体的实现方案:

Python

Python的datetime模块没有直接生成带序数词(st/nd/rd/th)的日期格式,需要自定义逻辑处理序数词后缀:

from datetime import datetime

def get_ordinal_suffix(day):
    # 处理11-13的特殊情况
    if 11 <= day <= 13:
        return 'th'
    last_digit = day % 10
    if last_digit == 1:
        return 'st'
    elif last_digit == 2:
        return 'nd'
    elif last_digit == 3:
        return 'rd'
    else:
        return 'th'

# 示例DateTime对象
date = datetime(2000, 1, 30)
# 组合格式
ordinal_suffix = get_ordinal_suffix(date.day)
formatted_date = f"{date.strftime('%B')} {date.day}{ordinal_suffix}, {date.year}"
print(formatted_date)  # 输出:January 30th, 2000

C#

C#中可以通过ToString获取月份全称,再结合自定义函数生成序数词:

using System;
using System.Globalization;

public class DateFormatter
{
    private static string GetOrdinalSuffix(int day)
    {
        if (day >= 11 && day <= 13)
            return "th";
        return day % 10 switch
        {
            1 => "st",
            2 => "nd",
            3 => "rd",
            _ => "th"
        };
    }

    public static void Main()
    {
        DateTime date = new DateTime(2000, 1, 30);
        // 获取英文月份全称
        string monthName = date.ToString("MMMM", CultureInfo.InvariantCulture);
        string ordinalSuffix = GetOrdinalSuffix(date.Day);
        string formattedDate = $"{monthName} {date.Day}{ordinalSuffix}, {date.Year}";
        Console.WriteLine(formattedDate); // 输出:January 30th, 2000
    }
}

JavaScript

JavaScript的Date对象需注意月份是0-based索引,同时自定义序数词逻辑:

function getOrdinalSuffix(day) {
    if (day >= 11 && day <= 13) return 'th';
    switch (day % 10) {
        case 1: return 'st';
        case 2: return 'nd';
        case 3: return 'rd';
        default: return 'th';
    }
}

// 示例Date对象(月份0代表1月)
const date = new Date(2000, 0, 30);
// 获取英文月份全称
const monthName = date.toLocaleString('en-US', { month: 'long' });
const ordinalSuffix = getOrdinalSuffix(date.getDate());
const formattedDate = `${monthName} ${date.getDate()}${ordinalSuffix}, ${date.getFullYear()}`;
console.log(formattedDate); // 输出:January 30th, 2000

内容的提问来源于stack exchange,提问作者bluechair41

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 03:55:16