更改日期和问题的问题目标c xcode中的时间格式

时间:2014-03-17 17:29:10

标签: objective-c date time datepicker nsdate

我已经有一段时间了,浏览所有论坛寻求帮助,但我无法让它发挥作用。我是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];
}
}

我很感激能得到的所有帮助。

由于

1 个答案:

答案 0 :(得分:3)

NSDateFormatterdateFormat字符串一起使用。如果您需要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 ReferenceDate Formatters部分。日期格式化程序可以让您对格式化日期的方式进行大量控制。