【发布时间】:2016-12-01 07:27:21
【问题描述】:
我对 DatePicker 视图有一个关于 DateTime 格式的奇怪问题。我的目标是获取从 00:00(24 小时)格式开始的日期和时间,但我总是以 12:00 AM(12 小时)格式获取时间。该代码位于 Xamarin.Forms PCL 库中:
<DatePicker x:Name="TruckAuftragBeginDatetime"
Format="dd.MM.yyyy"
TextColor="Aqua"
BackgroundColor="Black"
VerticalOptions="CenterAndExpand"
HorizontalOptions="EndAndExpand"
DateSelected="TruckAuftragBeginDatetimeOnDateSelected"></DatePicker>
我什至尝试将 Format 设置为 Format="dd.MM.yyyy HH:mm" 在我的 DateSelected EventHandler 中具有相同的结果。我总是得到类似的东西:
e.NewDate {11/30/2016 上午 12:00:00} 日期:{System.DateTime} 天数:30 DayOfWeek:System.DayOfWeek.Wednesday 日期:335 小时:0 种类:System.DateTimeKind.Unspecified 毫秒:0 分钟:0 月:11 第二:0 滴答声:636160608000000000 TimeOfDay: {System.TimeSpan} 年份:2016
sinceDateTime {11/30/2016 1:00:00 AM} 日期:{System.DateTime} 天数:30 DayOfWeek:System.DayOfWeek.Wednesday 日期:335 小时:1 种类:System.DateTimeKind.Local 毫秒:0 分钟:0 月:11 第二:0 滴答声:636160644000000000 TimeOfDay: {System.TimeSpan} 年份:2016
我的代码(事件处理程序):
private async void TruckAuftragBeginDatetimeOnDateSelected(object sender, DateChangedEventArgs e)
{
var sinceDateTime = e.NewDate.ToLocalTime();
}
作为一种临时解决方法,我采用 LocalTime,它在我的时区中提前一小时。
问题:
如何获得 24 小时格式的日期时间,结果如下:
e.NewDate {11/30/2016 00:00:00} 日期:{System.DateTime} 天:30 DayOfWeek:System.DayOfWeek.Wednesday DayOfYear:335 小时:0 种类: System.DateTimeKind.Unspecified 毫秒:0 分钟:0 月:11 第二:0 滴答声:636160608000000000 TimeOfDay:{System.TimeSpan} 年: 2016
【问题讨论】:
-
您好,老实说我没有测试过,但可能取决于设备的设置,您是否尝试过在那里更改时间格式?
-
我很确定这取决于设备的区域设置和设置
-
非常感谢您的所有建议。我想 Kovac 先生添加的链接是唯一的方法。我尝试在手机中设置为德语,但这并没有改变任何东西。我真正不明白的是,即使我用实例化了一个全新的 DateTime
-
var date = new DateTime(2016,12,1,0,0,0) 我得到 1.12.2016 12:00 AM 而不是 1.12.2016 00:00 。我是标准控制台应用程序,我得到 1.12.2016 00:00(24 小时格式)嗯...
标签: xamarin xamarin.forms cross-platform