web-dev-qa-db-ja.com

XamarinアプリケーションのXAMLで日付と時刻をフォーマットする方法

以下にXAMLコードをセットアップします。

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

2014年9月12日午後2:30のような結果が必要です。

27
Narendra

コードを次のように変更します。

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

カスタム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>
7
Daniel Luberda

標準の 。NET日付形式 指定子を使用します。

取得するため

2014年9月12日午後2時30分

のようなものを使用する

MMMM d, yyyy h:mm tt
6
Jason