我有一个以这种格式显示日期格式
4月17日星期二,2018年6:12:02
我试过这个
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);
}
}
我怎样才能像星期二,星期三一样以全文获取月份和日期,也可以将日期更改为AM和PM ... 我可以在int中获得年份和日期。
答案 0 :(得分:5)
这取自评论中列出的docs。您基本上使用要显示的格式添加字符串格式模式。请注意,大写和小写格式之间存在差异。
如Soner Gönül所述,如果您的目标受众群体不是基于英语的,请考虑在CultureInfo.InvariantCulture
字段中添加toString()
字段。这样,显示的日期与某种文化无关。不要忘记包含System.Globalization
。
来自docs:
不变文化数据随着时间的推移和跨安装的文化保持稳定,无法由用户自定义。这使得不变文化对于需要与文化无关的结果的操作特别有用,例如格式化和解析格式化数据的解析操作
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
答案 1 :(得分:1)
这是经典格式问题。
如果您想获得DateTime
的 textual (又名字符串)表示,最常用的方法是使用ToString
method和可选的格式和文化设置。
您的目标字符串包含基于英语的月份和日期名称。这就是为什么您需要使用像InvariantCulture
这样的基于英语的文化设置的原因。
在您的字符串中添加格式,您只需要遵循custom date and time format strings页面上的规则。
var answer = DateTime.Now.AddDays(-1).ToString("dddd MMMM dd h:mm:ss yyyy",
CultureInfo.InvariantCulture);