我已经有一段时间了,浏览所有论坛寻求帮助,但我无法让它发挥作用。我是xcode的新手,我试图将yyyy-mm-dd hh:mm:ss +0000更改为例如2014年3月21日下午6:30。我目前的代码是:
-(void)viewDidLoad{
UIDatePicker *datePicker = [[UIDatePicker alloc]init];
[datePicker setDate:[NSDate date]];
[datePicker addTarget:self action:@selector(updateTextField:) forControlEvents:UIControlEventValueChanged];
[_postTime setInputView:datePicker];
}
-(void)updateTextField:(id)sender{
if([_postTime isFirstResponder]){
UIDatePicker *picker = (UIDatePicker*)_postTime.inputView;
_postTime.text = [NSString stringWithFormat:@"%@",picker.date];
}
}
我很感激能得到的所有帮助。
由于
答案 0 :(得分:3)
将NSDateFormatter
与dateFormat
字符串一起使用。如果您需要yyyy-mm-dd格式,请使用yyyy-MM-dd HH:mm:ss Z
(注意月份的首都MM
和小时HH
):
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.timeZone = [NSTimeZone timeZoneWithName:@"GMT"];
formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss Z";
formatter.locale = [NSLocale localeWithLocaleIdentifier:@"en_US"];
_postTime.text = [formatter stringFromDate:picker.date];
如果您想在2014年3月21日,当地时区的下午6:30格式,您可以使用以下内容:
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"d MMMM yyyy, hh:mma";
formatter.locale = [NSLocale localeWithLocaleIdentifier:@"en_US"];
_postTime.text = [formatter stringFromDate:picker.date];
如果您希望以用户设备指定的格式格式化该日期(这是一种很好的方式来呈现日期/时间,尊重用户在设置中的首选项):
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateStyle = NSDateFormatterLongStyle;
formatter.timeStyle = NSDateFormatterShortStyle;
_postTime.text = [formatter stringFromDate:picker.date];
有关详细信息,请参阅数据格式指南的NSDateFormatter Class Reference或Date Formatters部分。日期格式化程序可以让您对格式化日期的方式进行大量控制。