0

ユーザーから日付を収集し、それを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];
}
4

1 に答える 1

1

ユーザーから日付を収集する方法を尋ねる場合、最も簡単な方法はUIDatePickerを使用することです。ストーリーボードまたはNIBを使用していると仮定すると、オブジェクトライブラリからコントロールをドラッグし、その「値の変更」イベントをアクションメソッドに接続します。

UIDatePicker

アクションメソッド内で、次のように日付を取得できます。

- (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];
于 2012-12-03T02:37:45.433 に答える