gpt4 book ai didi

c# - Xamarin.iOS UITextField 日期格式不起作用

转载 作者:行者123 更新时间:2023-11-29 00:48:21 25 4
gpt4 key购买 nike

我有一个 UITextField,单击它会打开一个 DatePicker。我希望时间以 hh:mm tt 的形式显示在 TextField 中(例如下午 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;
};
}

DatePicker 显示并且一切正常。但是当我在日期选择器中选择时间并单击完成时,TextField 中显示的时间就像 2:10。尽管我指定了上午/下午,但并未显示

DateFormat = "hh:mm tt"

我在这里做错了什么?

最佳答案

此处您使用的是来自 iOS SDK 的 NSDateFormatter,但使用 C# specifiers 指定 DateFormat

当 iOS 设备打开 24 小时制时,AM/PM 将不会显示:

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 的信息。

关于c# - Xamarin.iOS UITextField 日期格式不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38391062/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com