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

Datetime 如何在Xamarin应用程序中格式化XAML中的日期和时间,datetime,xamarin,xamarin.forms,Datetime,Xamarin,Xamarin.forms,我在下面有一个设置XAML代码 <Label Text="{Binding Date}"></Label> <Label Text="{Binding Time}'}"></Label> 我想要的结果是2014年9月12日下午2:30。使用标准说明符 得到 2014年9月12日下午2:30 使用类似 MMMM d, yyyy h:mm tt 进行自定义IValueConverter实现: 公共类DateTimeToString转换器:IVa

我在下面有一个设置XAML代码

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

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

使用标准说明符

得到

2014年9月12日下午2:30

使用类似

MMMM d, yyyy h:mm tt

进行自定义IValueConverter实现:

公共类DateTimeToString转换器:IValueConverter
{
#区域转换器实现
公共对象转换(对象值、类型targetType、对象参数、System.Globalization.CultureInfo区域性)
{
如果(值==null)
返回字符串。空;
var datetime=(datetime)值;
//将自定义格式放在这里
return datetime.ToLocalTime().ToString(“g”);
}
公共对象转换回(对象值、类型targetType、对象参数、System.Globalization.CultureInfo区域性)
{
抛出新的NotImplementedException();
}
#端区
}
然后像这样使用它:


...
将代码更改为:

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



看起来您好像忘记添加xaml代码了!下面的答案可能更接近您想要的,但是您应该注意,Xamarin表单在绑定中的日期格式方面有一个bug@MelbourneDeveloper我看到了你的帖子,问题被转移到GitHub。非常感谢您的贡献。不幸的是,到今天为止,这一问题仍未解决。我会在这里留下一个关于GitHub的链接,这样人们就可以了解最新情况。日期按预期绑定,但时间不按预期绑定,它只显示下午2:30,而不是2:30,其中时间是TimeSpan TimeSpan表示一个间隔-它没有AM/PM的概念。您可以提供XAML吗?请查看此内容并找到我自己的答案。前两个答案是无用的,但这一个解决了它。干得好!这节省了我很多时间。这应该是被接受的答案…@user1然后接受你的答案我尝试了你的代码,但在行中得到无效的强制转换异常,var datetime=(datetime)值;对于我来说,以java时间戳形式接收日期:1510822596449。您的代码在将java时间戳转换为字符串日期方面运行良好吗?我也是,我尝试了您的代码,然后得到了一个无效的强制转换异常。
<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>