将System.Globalization.DateTimeFormatInfo短日期格式转换为Windows.Globalization.DateTimeFormatting.DateTimeFor

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将System.Globalization.DateTimeFormatInfo短日期格式转换为Windows.Globalization.DateTimeFormatting.DateTimeFor相关的知识,希望对你有一定的参考价值。

我在UWP中使用CalendarDatePicker控件。日期的格式应该本地化为用户选择的文化,这不一定与操作系统语言设置相同。我希望日期格式与myCultureInfo.DateTimeFormat.ShortDatePattern(例如mm / dd / yyyy)相同。 CalendarDatePicker公开一个DateFormat属性,该属性的格式应为{month.integer} / {day.integer} / {year.full}。我需要一个用于XAML绑定的转换器。似乎应该有一个简单的方法来做到这一点。

<!-- In XAML -->
<CalendarDatePicker
    FirstDayOfWeek="{x:Bind ViewModel.CalendarFirstDayOfWeek, Mode=OneTime, Converter={StaticResource SystemDayOfWeekToWindowsDayOfWeekConverter}}"
    DateFormat="{x:Bind ViewModel.DateFormat, Mode=OneWay, Converter={StaticResource DateTimeFormatToDateTimeFormatterTemplateConverter}"
    Date="{x:Bind ViewModel.Date, Mode=TwoWay, Converter={StaticResource DateTimeToDateTimeOffsetConverter}}"/>

//Converter
public class DateTimeFormatToDateTimeFormatterTemplateConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, string language)
    {
        //What goes here?
    }

    public object ConvertBack(object value, Type targetType, object parameter, string language)
    {
        throw new NotImplementedException();
    }
}

编辑:理想情况下,CalendarDatePicker只有一个CultureInfo属性,可以处理所有这些。我尝试了语言属性,但没有明显的效果。

答案

是的,您使用CalendarDatePickerDateTimeFormatter属性设置CalendarDatePickerDateFormat,该属性告诉DateTimeFormatter如何通过提供格式模板或格式模式的字符串来格式化值。 Language属性用于获取或设置适用于CalendarDatePicker的本地化/全球化语言信息。

不同的Language与qazxsw poi qazxsw poi属性也许有不同的日期格式。你可以通过语言en-US和fr-FR看到不同的东西。

shortdate

所以你可能需要使用DateFormat类来获得当前的文化。

对于<StackPanel> <CalendarDatePicker Language="en-US" DateFormat="shortdate"/> <CalendarDatePicker Language="fr-FR" DateFormat="shortdate"/> </StackPanel> 转换,您可以从您的设备设置应用程序获取所有CultureInfo:设置=>时间和语言=>数据和时间=>更改日期和时间格式,在短日期部分,您可以看到那里的所有格式。然后你可以根据DateFormat返回相应的ShortTimePattern字符串。以下是一些代码示例:

DateFormat
另一答案

对于任何在这里冒险的人来说,这至少会将日期格式和一周的第一天本地化,但它不会本地化月份的名称:

ShortTimePattern

(SystemDayOfWeekToWindowsDayOfWeekConverter的实现是从System.DayOfWeek到Windows.Globalization.DayOfWeek的简单转换)

以上是关于将System.Globalization.DateTimeFormatInfo短日期格式转换为Windows.Globalization.DateTimeFormatting.DateTimeFor的主要内容,如果未能解决你的问题,请参考以下文章

如何将Ios文件上传到

Javascript 将正则表达式 \\n 替换为 \n,将 \\t 替换为 \t,将 \\r 替换为 \r 等等

如何将视频文件转换格式

sh 一个将生成CA的脚本,将CA导入到钥匙串中,然后它将创建一个证书并与CA签名,然后将其导入到

python怎么将0写入文件?

如何将CMD窗口背景改成透明?