[英]How to bind the ViewModel for a windows phone 8 messaging app
[英]How to format date time in a Windows Phone app like the native messaging app
Windows Phone 8中的本机消息传递应用程序显示日期时间,如下所示:
4/3, 8:31p
12/25, 10:01a
当我使用String.Format(“ {0:d} {0:t}”)格式化日期时间时,我得到了这些:
4/3/2013 8:31 PM
12/25/2012 10:01 AM
如何使其像本地消息传递应用程序一样简洁?
此表示没有标准的日期和时间格式字符串 。
虽然您可以简单地使用:
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
模式之间切换。 并不是所有的文化都完美,但是至少当您遇到一种以从未想过的方式格式化日期和时间的文化时,您也不会感到不愉快!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.