Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# DateTimeOffset格式,并获得与moment.js相同的输出_C#_Momentjs - Fatal编程技术网

C# DateTimeOffset格式,并获得与moment.js相同的输出

C# DateTimeOffset格式,并获得与moment.js相同的输出,c#,momentjs,C#,Momentjs,我可以使用以下模式在moment.js中格式化日期: MMMM Do YYYY, h:mm:ss a 它将返回: January 1st 0001, 12:00:24 am date.ToString("MMMM Do YYYY, h:mm:ss a") > January Do YYYY, 12:00:00 a 但是,对C#DateTimeOffset执行相同操作将返回: January 1st 0001, 12:00:24 am date.ToString

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

MMMM Do YYYY, h:mm:ss a
它将返回:

January 1st 0001, 12:00:24 am
date.ToString("MMMM Do YYYY, h:mm:ss a")

> January Do YYYY, 12:00:00 a
但是,对C#DateTimeOffset执行相同操作将返回:

January 1st 0001, 12:00:24 am
date.ToString("MMMM Do YYYY, h:mm:ss a")

> January Do YYYY, 12:00:00 a
我想知道如何实现相同的输出?

您可以安装nuget软件包并执行以下操作:

   date.ToString("MMMM dd")+  GetSuffix(date.Day) + date.ToString(" yyyy, h:mm:ss a")

            string GetSuffix(int day){

            return (day % 10 == 1 && day != 11) ? "st"
            : (day % 10 == 2 && day != 12) ? "nd"
            : (day % 10 == 3 && day != 13) ? "rd"
            : "th";
             }
date.ToString($"MMMM \"{date.Day.Ordinalize()}\" yyyy, h:mm:ss tt")

这是没有人性化的,您可以为
日期时间偏移量
创建相同的函数,它的工作原理相同

    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

查看.NET中日期格式的文档。