繁体   English   中英

C#日期时间格式,包括日期/月/年而非日期

[英]C# datetime format that includes date/month/year and not day

我想使用标准日期格式,在电脑的标准区域设置中显示日期,月份和年份。 但是我只能找到“D”,它列出了日期和月 - 月 - 年。 有什么方法可以从它或任何其他方式删除一天来获得我想要的输出?

DateTime date1 = new DateTime(2008, 4, 10);
Console.WriteLine(date1.ToString("D", 
                  CultureInfo.CreateSpecificCulture("en-US")));
// Displays Thursday, April 10, 2008   

注意:我不想使用自定义格式(d MMMM yyyy),因为我希望维护订单的区域设置。

您可以将此用于您的情况:

DateTimeFormatInfo myDTFI = new CultureInfo("en-US", false).DateTimeFormat;
string str = (new DateTime(2008, 4, 10)).ToString(myDTFI.LongDatePattern.Replace("dddd", ""));

尝试这个:

date1.ToString("d", CultureInfo.CreateSpecificCulture("en-US"))

它会回归你想要的!!

如果你使用的是标准格式之一,那么显示的内容将取决于文化 - 所以即使你能找到一些在美国没有显示星期几的东西,它仍然可以显示它在其他文化中。

我想您可以找到文化的DateTimeFormatInfo ,找到它的LongDatePattern ,然后从该格式字符串中删除任何单个“d”。 但这会很糟糕。

您应该使用“d”而不是“D”来获得所需的输出。

许多文化都有多个长日期模式,您可以从中选择第一个缺少星期几模式的模式:

    static void Main(string[] args)
    {
        foreach (var cultureInfo in System.Globalization.CultureInfo.GetCultures(System.Globalization.CultureTypes.AllCultures))
        {
            string longDateWithoutDayOfWeek = null;
            foreach (var pattern in cultureInfo.DateTimeFormat.GetAllDateTimePatterns('D'))
            {
                if (!pattern.Contains("ddd"))
                {
                    longDateWithoutDayOfWeek = pattern;
                    break;
                }
            }

            bool isFallbackRequired = string.IsNullOrEmpty(longDateWithoutDayOfWeek);
            if (isFallbackRequired)
            {
                longDateWithoutDayOfWeek = cultureInfo.DateTimeFormat.ShortDatePattern;
            }
            System.Console.WriteLine("{0} - {1} {2}", cultureInfo.Name, longDateWithoutDayOfWeek, (isFallbackRequired) ? " (short)" : string.Empty);
        }
    }

或者,您可以使用Windows.Globalization.DateTimeFormatting.DateTimeFormatter以及"day month year"模板。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM