由于某种原因,我已将日期存储在数据库中而没有削减。这意味着我有一个像 20110602 这样的日期字段。
由于我想检索此日期并将其显示在文本块中,因此我需要一种格式来将此日期显示为带有斜线的普通日期。
我怎样才能以这种方式使用 StringFormat ?...有谁知道我应该使用什么格式将“20110602”转换为 2011/06/02 ?
<TextBlock Text="{Binding CreatedDate, StringFormat=?????"
由于某种原因,我已将日期存储在数据库中而没有削减。这意味着我有一个像 20110602 这样的日期字段。
由于我想检索此日期并将其显示在文本块中,因此我需要一种格式来将此日期显示为带有斜线的普通日期。
我怎样才能以这种方式使用 StringFormat ?...有谁知道我应该使用什么格式将“20110602”转换为 2011/06/02 ?
<TextBlock Text="{Binding CreatedDate, StringFormat=?????"
如果您更喜欢实现转换器的路线:
class dateTimeConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
string dateString = (string)value;
return DateTime.ParseExact(dateString, "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture);
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
然后在你的 xaml
<TextBlock Text="{Binding Path=<path>, Converter={StaticResource <dateTimeConverterKey>}, StringFormat=\{0:yyyy/MM/dd\}}"/>
尝试 DateTime.ParseExact 方法:
dateString = "Sun 15 Jun 2008 8:30 AM -06:00";
format = "ddd dd MMM yyyy h:mm tt zzz";
try {
result = DateTime.ParseExact(dateString, format, provider);
Console.WriteLine("{0} converts to {1}.", dateString, result.ToString());
}
catch (FormatException) {
Console.WriteLine("{0} is not in the correct format.", dateString);
}
在你的情况下,我认为格式应该是:
format = "yyyyMMdd";
欲了解更多信息:http: //msdn.microsoft.com/en-us/library/w2sa9yss.aspx