如何在 Xamarin 应用程序中的 XAML 中格式化日期和时间

问题描述 投票:0回答:4

我在下面设置了 XAML 代码。

<Label Text="{Binding Date}"></Label>
<Label Text="{Binding Time}'}"></Label>

我想要2014年9月12日下午2:30这样的结果。

datetime xamarin xamarin.forms
4个回答
181
投票

将代码更改为:

<Label Text="{Binding Date, StringFormat='{0:MMMM dd, yyyy}'}"></Label>
<Label Text="{Binding Time, StringFormat='{}{0:hh\\:mm}'}"></Label>

13
投票

制作自定义 IValueConverter 实现:

public class DatetimeToStringConverter : IValueConverter
{
    #region IValueConverter implementation

    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        if (value == null)
            return string.Empty;

        var datetime = (DateTime)value;
        //put your custom formatting here
        return datetime.ToLocalTime().ToString("g");
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        throw new NotImplementedException(); 
    }

    #endregion
}

然后像这样使用它:

<ResourceDictionary>
    <local:DatetimeToStringConverter x:Key="cnvDateTimeConverter"></local:DatetimeToStringConverter>
</ResourceDictionary>

...

<Label Text="{Binding Date, Converter={StaticResource cnvDateTimeConverter}}"></Label>
<Label Text="{Binding Time, Converter={StaticResource cnvDateTimeConverter}}"></Label>

12
投票
<Label>
    <Label.FormattedText>
        <FormattedString>
            <Span Text="{Binding Date, StringFormat='{0:MMMM dd, yyyy}'}" />
            <Span Text=" " />
            <Span Text="{Binding Time, StringFormat='{0:h:mm tt}'}" />
        </FormattedString>
    </Label.FormattedText>
</Label>

6
投票

使用标准 .NET 日期格式说明符。

为了得到

2014年9月12日下午2:30

使用类似

的东西
MMMM d, yyyy h:mm tt
© www.soinside.com 2019 - 2024. All rights reserved.