Xamarin.iOS UITextField 日期格式不起作用
本文关键字:格式 不起作用 日期 UITextField iOS Xamarin | 更新日期: 2023-09-27 17:57:14
我有一个UITextField,点击后会打开一个DatePicker。我希望时间以 hh:mm tt 显示在文本字段中(例如下午 2:10
)void InitTimePicker()
{
timePicker = new ModalPickerViewController(ModalPickerType.Date, "Select A Time", this)
{
HeaderBackgroundColor = UIColor.Red,
HeaderTextColor = UIColor.White,
TransitioningDelegate = new ModalPickerTransitionDelegate(),
ModalPresentationStyle = UIModalPresentationStyle.Custom
};
timePicker.DatePicker.Mode = UIDatePickerMode.Time;
timePicker.OnModalPickerDismissed += (sim, ea) =>
{
var timeFormatter = new NSDateFormatter()
{
DateFormat = "hh:mm tt"
};
vitalEntryTimeTextField.Text = timeFormatter.ToString(timePicker.DatePicker.Date);
};
vitalEntryTimeTextField.ShouldBeginEditing = (textView) =>
{
textView.ResignFirstResponder();
PresentViewControllerAsync(timePicker, true);
return true;
};
}
日期选择器显示,一切正常。 但是当我在日期选择器中选择时间并单击完成时,文本字段中显示的时间类似于 2:10。尽管我指定了AM/PM但没有显示
DateFormat = "hh:mm tt"
我在这里做错了什么?
这里使用的是来自 iOS SDK 的NSDateFormatter
,但使用 C# 说明符指定DateFormat
当 iOS 设备打开 24 小时格式时,将不会显示 AM/PM:
设置 ->常规 -> 日期和时间 -> 24 小时
显然,您不能保证不会在每个设备上启用24小时时间。
您可以指定时间格式的区域设置。具体来说,en_US
默认使用 12 小时的时间。
NSLocale myLocale = new NSLocale("en_US");
var timeFormatter = new NSDateFormatter()
{
Locale = myLocale,
DateFormat = "hh:mm a"
};
这会给你类似的东西 01:15 PM
.
使用HH:mm a
给你类似的东西 13:15 PM
.