我是iPhone开发的新手,现在开始使用我的第一款应用。我在视图上有一个UIDatePicker,如果用户点击保存,日期选择器的当前时间应该保存在数据库中(格式为hh:mm)。
现在,问题是我的UIDatePicker有24小时格式来选择所需的小时和分钟(我通过将模拟器中的iPhone设置设置为“瑞士”和“德语”来配置)。如果我在日期选择器中选择,例如17:00,则以下代码在NSLog中生成5:00:
NSDateFormatter *datePickerFormat = [[NSDateFormatter alloc] init];
[datePickerFormat setDateFormat:@"hh:mm"];
NSString *datePickerStringToSave = [datePickerFormat stringFromDate:datePicker.date];
NSLog(@"%@", datePickerStringToSave);
日期选择器是否有可能以24小时格式返回所选时间?或者我可以配置NSDateFormatter以显示24小时内返回的时间吗?我已经尝试将日期选择器的属性检查器中的“本地”设置设置为我的国家/地区和语言,但这不起作用...
感谢您的回答!
答案 0 :(得分:5)
我认为这里的问题是@"hh:mm"
中的小写h强制datePickerFormat
进入12小时模式。尝试将该行更改为:
[datePickerFormat setDateFormat:@"HH:mm"];
有关正确日期格式模式的信息,请查看this guide。
答案 1 :(得分:1)
我的贡献有点晚,但日期/时间选择器以24小时格式出现在屏幕上的事实是由于手机的用户日期/时间设置,因此UIDatepicker默认为用户手机设置。
答案 2 :(得分:0)
+(NSDateFormatter *)GetPickerDateFormater
{
NSDateFormatter *formatter1 = [[NSDateFormatter alloc] init];
[formatter1 setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSLocale *locale1 = [[NSLocale alloc] initWithLocaleIdentifier:@"NL"];
NSTimeZone *timeZone1 = [NSTimeZone timeZoneWithName:@"IST"];
[formatter1 setTimeZone:timeZone1];
[formatter1 setLocale:locale1];
[locale1 release],
locale1 = nil;
return formatter1;
}
- (void)action:(id)sender forEvent:(UIEvent *)event {
txtToDate.text = [NSString stringWithFormat:@"%@",
[[self GetPickerDateFormater] stringFromDate:DatepickerView.date]];
}
答案 3 :(得分:0)
let datePicker = UIDatePicker()
datePicker.datePickerMode = UIDatePickerMode.time
datePicker.locale = Locale.init(identifier: "NL")