以特定模式格式化日期字符串

我有一个以这种格式显示日期格式

星期二4月17日6:12:02 2018

我试过这个

class Program
{
    static void Main(string[] args)
    {
        var today = DateTime.Now.AddDays(-1);
        var day = today.Day;
        var month = today.Month;
        var year = today.Year;

        Console.WriteLine(today);
        Console.WriteLine(day);
        Console.WriteLine(month);
        Console.WriteLine(year);
        var answer = day + "/" + month + "/" + year;
        Console.WriteLine(answer);
        Console.WriteLine(today);
    }
}

我怎样才能得到像星期二,星期三全文的月份和日期,也可以将日期更改为上午和下午...我可以得到int和年份。


这是来自评论中列出的文档。 你基本上以你想要显示的格式添加字符串格式模式。 注意大写和小写格式有区别。

正如SonerGönül所提到的,如果您的目标受众不是基于英语,那么可以考虑将CultureInfo.InvariantCulture字段添加到toString() 。 这样显示的日期并不与某种文化联系在一起。 请不要忘记包含System.Globalization

从文档:

不变的文化数据在一段时间内稳定并且在所安装的文化中保持稳定,并且不能由用户自定义。 这使得不变文化对需要独立于文化的结果的操作特别有用,例如格式化和解析操作,这些操作会持续格式化数据

var today = DateTime.Now.AddDays(-1);

Console.WriteLine(today.ToString("dddd MMMM dd hh:mm:ss tt yyyy", CultureInfo.InvariantCulture));

// Monday April 16 12:11:06 PM 2018 <- My time

这是一个经典的格式问题。

如果您想获取DateTime文本(又名字符串)表示形式,最常用的方法是使用带可选格式和区域性设置的ToString方法。

您的目标字符串包含英文的月份和日期名称。 这就是为什么你需要使用像InvariantCulture这样的基于英语的文化背景。

并将格式放入字符串中,只需遵循自定义日期和时间格式字符串页面上的规则。

var answer = DateTime.Now.AddDays(-1).ToString("dddd MMMM dd h:mm:ss yyyy", 
                                               CultureInfo.InvariantCulture);
链接地址: http://www.djcxy.com/p/75119.html

上一篇: Format date string in a specific pattern

下一篇: How do I programm a language independent double.tryparse?