我有一个DateTime对象,如何创建一个文化指定字符串来显示星期几和时间?
。"星期三23:00"或"星期四凌晨1:00"有些培养使用24小时格式,有些使用12小时格式
http://www.csharp-examples.net/string-format-datetime/如何创建区域性指定字符串以显示星期几和时间吗?
通常使用DateTime.ToString(String, IFormatProvider)
方法,您可以以指定的格式和区域性生成您的字符串表示。
有些培养使用24小时格式,有些培养使用12小时格式
没有这样的事。24小时时钟格式和12小时时钟格式属于。net框架的自定义日期和时间格式,而不是特定的文化。例如;h
和hh
表示12小时格式,H
和HH
表示24小时格式。此外,您使用的区域性不应该将AMDesignator
和PMDesignator
作为空字符串。否则,即使在您的格式中使用tt
说明符,它也不会显示。
根据您的输出,如果您的CurrentCulture
不是基于英语的,则需要使用基于英语的区域性(如InvariantCulture
),因为Wed
和Thu
是它们的缩写。
,
DateTime dt = new DateTime(2015, 6, 3, 23, 0, 0);
Console.WriteLine(dt.ToString("ddd HH:mm", CultureInfo.InvariantCulture)); // Wed 23:00
和
DateTime dt = new DateTime(2015, 6, 4, 1, 0, 0);
Console.WriteLine(dt.ToString("ddd h:mm tt", CultureInfo.InvariantCulture)); // Thu 1:00 AM
// create a CultureInfo object with your desired culture
CultureInfo culture = new CultureInfo("en-GB");
// get a DateTime from wherever
DateTime dt = DateTime.Now;
// pass the culture during formatting
String s = dt.ToString(culture);
您可以将区域性传递给任何占用IFormatProvider
的ToString
的重载。
根据最终目标,Humanizer项目可能会有所帮助