这个表示没有standard date and time format string。
虽然你可以简单地使用:
string.Format("{0:M/d, h:mmt}");
...当你的应用程序中切换日期和月份的订单培养,使用它不会帮助。
最接近的解决方案可能是采取格式字符串为您当前的文化,并相应修改,即:
var culture = (CultureInfo)CultureInfo.CurrentUICulture.Clone();
// Make the AM/PM designators lowercase
culture.DateTimeFormat.AMDesignator = culture.DateTimeFormat.AMDesignator.ToLower();
culture.DateTimeFormat.PMDesignator = culture.DateTimeFormat.PMDesignator.ToLower();
var dDateFormatPattern = culture.DateTimeFormat.ShortDatePattern;
var tDateFormatPattern = culture.DateTimeFormat.ShortTimePattern;
var dateCompact = dDateFormatPattern.Replace("yyyy", "")
.Replace("MM", "M").Replace("dd", "d").Replace(" ", "")
.Trim(culture.DateTimeFormat.DateSeparator.ToArray());
var timeCompact = tDateFormatPattern
.Replace("hh", "h").Replace("tt", "t").Replace(" ", "");
Console.WriteLine(DateTime.Now.ToString(dateCompact + " " + timeCompact, culture));
>>> 4/4 3:03p
...或者,也许你可以只检查CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern
价值和D/M
之间切换模式和M/D
模式。对于所有文化而言,这并不是完美的,但至少当你以一种你从未想到的方式创造日期和时间的文化时,你不会得到一个不愉快的惊喜!
'DateTime.Now.ToString(“M/d,h:mm t”)'? – Damith 2013-04-04 03:51:16
我忘了提及,我希望它能与不同的国家合作。 – Sharkman 2013-04-04 04:26:21