public sealed class IsoDateValueConverter : IValueConverter {
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) {
if (value != null && value is DateTime) {
var date = (DateTime)value;
return date.ToString(SystemInformation.DateTime.IsoShortDateFormat);
return string.Empty;
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) {
if (culture == null) {
throw new ArgumentNullException("culture");
if (value != null && value is string) {
return DateTime.ParseExact((string)value, SystemInformation.DateTime.IsoShortDateFormat, CultureInfo.InvariantCulture);
return null;