我想从用户收集日期,将其转换为unix纪元时间并使用该纪元时间戳替换dateWithTimeIntervalSince1970之后的时间戳:在我的代码中。非常感谢任何帮助,谢谢!
-(void)updatelabel{
NSCalendar *Calender = [[NSCalendar alloc]initWithCalendarIdentifier:NSGregorianCalendar];
int units = NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
NSDateComponents *components = [Calender components:units fromDate:[NSDate date] toDate:destinationDate options:0];
[dateLabel setText:[NSString stringWithFormat:@"%d%c %d%c %d%c %d%c", [components day], 'd', [components hour], 'h', [components minute], 'm', [components second], 's']];
}
- (void)viewDidLoad {
[super viewDidLoad];
destinationDate = [NSDate dateWithTimeIntervalSince1970:1356088260];
timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(updatelabel) userInfo:nil repeats:YES];
}
答案 0 :(得分:1)
如果您询问如何从用户收集日期,最简单的方法是使用UIDatePicker。假设您正在使用Storyboard或NIB,您可以从对象库中拖动控件并使用操作方法连接其“Value Changed”事件。
在您的操作方法中,您可以将日期设为:
- (IBAction)dateSelected:(UIDatePicker *)picker {
NSDate *selectedDate = picker.date;
// ...
}
如果您拥有来自用户的NSString,则可以使用NSDateFormatter将字符串转换为NSDate:
NSString *usersDateStr = @"12/01/2012" // this would be retrieved from the user.
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"MM/dd/yyyy";
NSDate *selectedDate = [formatter dateFromString:usersDateStr];
无论哪种方式,一旦你有了一个日期对象,如果需要,你可以将它转换为NSTimeInterval:
NSTimeInterval time = [selectedDate timeIntervalSince1970];