首页 > 解决方案 > DateTimeOffset 格式并获得与 moment.js 相同的输出

问题描述

我可以使用以下模式在 moment.js 中格式化日期:

MMMM Do YYYY, h:mm:ss a

它会返回:

January 1st 0001, 12:00:24 am

但是,对 C# DateTimeOffset 执行相同操作将返回:

date.ToString("MMMM Do YYYY, h:mm:ss a")

> January Do YYYY, 12:00:00 a

我想知道如何实现相同的输出?

标签: c#momentjs

解决方案


这是没有 Humanizer 的,您可以创建相同的功能DateTimeOffset,它的工作原理相同

    public static string ToDisplayDate(DateTime date)
    {
        int day = date.Day;
        string dayStringOrdinal = day +
            ((day % 10 == 1 && day != 11) ? "st"
            : (day % 10 == 2 && day != 12) ? "nd"
            : (day % 10 == 3 && day != 13) ? "rd" : "th");

        return date.ToString("MMMM DAY, h:mm:ss tt").Replace("DAY", dayStringOrdinal);
    }

输出 :

August 13th, 08:35:58 AM

推荐阅读