DatePicker上显示的格式日期

时间:2015-05-25 22:35:04

标签: date datepicker windows-phone-8.1 format

我在Visual Studio 2013上创建了一个Pivot项目。

我创建了以下控件:

<DatePicker Header="Data" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="10,10,0,0" Width="341"/>

当我在手机上点按它时,它会将日期显示为M / D / Y.是否可以将其显示为D / M / Y?

另外,不知道我是否应该创建另一个问题,但是如何将pt-BR转换为控件中显示的日/月名称?以及“选择日期”。

enter image description here

1 个答案:

答案 0 :(得分:2)

DatePicker 格式使用用户首选的语言和区域。此控件将自动显示不同,对于我的区域,它是您希望的日/月/年。我试图强制控件使用其他语言,但它似乎直接从手机设置。您可以在MSDN找到一些信息:

  

如果您需要允许用户选择日期或选择时间,请使用标准日期和时间选择器控件。这些将自动使用用户首选语言和区域的日期和时间格式。

您可以找到here at MSDN about formating that particular control的其他坏消息:

  

注意本节适用于使用C ++,C#或Visual Basic的Windows应用商店应用。 Windows Phone应用程序中忽略格式化。

因此,在当前的API中,可能很难更改格式。

好消息是顶部的CHOOSE DATE文本 - 它会自动本地化,具体取决于用户的语言和区域。因此,如果您的应用支持用户的语言,则无需担心。但我没有办法将其改为其他文本。

对于单击按钮之前显示的文本,您可以随时使用按钮 DatePickerFlyout ,这是一个适当的转换器的简单示例:

<Button Content="{Binding ElementName=chosenDate, Path=Date, Converter={StaticResource DateFormatConverter}}">
    <Button.Flyout>
        <DatePickerFlyout x:Name="chosenDate" />
    </Button.Flyout>
</Button>

和转换器类:

public class DateFormatConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, string language)
    {
        DateTimeOffset chosen = (DateTimeOffset)value;
        return string.Format("{0}/{1}/{2}", chosen.Day, chosen.Month, chosen.Year);
        // or use chosen.ToString() with format provider
    }

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