Xamarin.iOS UITextField 日期格式无效
Xamarin.iOS UITextField date format not working
我有一个 UITextField,单击它会打开一个 DatePicker。我希望时间显示在 hh:mm tt 的 TextField 中(例如 2:10 PM)
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;
};
}
DatePicker 显示并且一切正常。但是当我 select 日期选择器中的时间并单击完成时,TextField 中显示的时间就像 2:10。 AM/PM 没有显示,尽管我指定了
DateFormat = "hh:mm tt"
我做错了什么?
此处您使用的是来自 iOS SDK 的 NSDateFormatter
,但使用 C# specifiers
指定 DateFormat
AM/PM 当 iOS 设备打开 24 小时制时将不会显示:
Settings -> General -> Date & Time -> 24 Hour
显然,您不能保证不会在每台设备上启用 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
的东西。
我有一个 UITextField,单击它会打开一个 DatePicker。我希望时间显示在 hh:mm tt 的 TextField 中(例如 2:10 PM)
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;
};
}
DatePicker 显示并且一切正常。但是当我 select 日期选择器中的时间并单击完成时,TextField 中显示的时间就像 2:10。 AM/PM 没有显示,尽管我指定了
DateFormat = "hh:mm tt"
我做错了什么?
此处您使用的是来自 iOS SDK 的 NSDateFormatter
,但使用 C# specifiers
DateFormat
AM/PM 当 iOS 设备打开 24 小时制时将不会显示:
Settings -> General -> Date & Time -> 24 Hour
显然,您不能保证不会在每台设备上启用 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
的东西。