0

NSDateComponentsに小さな問題があります。

私が今持っているものは次のようになります: [2014-8-08 08:00:00] 最初に現在の時刻を使用しているため ([NSDate date] を使用)、次に時間、分、秒を手動で何かに設定します。それ以外の場合はcompsを使用します。

私の目的は、文字列を使用して日付と時刻を区切ることです。現在時刻も使えるようにしたいのですが、[comps set Hour/Minute/Second]は文字列で設定したいです。

文字列は次のようにフォーマットされます: (06:00:00)。

NSDatePicker を開くときに、これをデフォルトの選択肢として設定する必要があります。したがって、日付を選択すると、最初は [2014-8-08 06:00:00] のようになります。

文字列で時/分/秒を設定する方法はありますか?

文字列を使用する必要があります。06:00:00 は、店が開店したときの MYSQL クエリに似ています。私は何百もの店舗で働いています。店舗ごとに開店時間が異なります。 ありがとう

フランコ

startTimeDatePicker.datePickerMode = UIDatePickerModeDateAndTime;
NSDate *now = [NSDate date];
startTimeDatePicker.maximumDate = now;


NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *comps = [calendar components: NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit fromDate:[NSDate date]];
[comps setHour:8];
[comps setMinute:0];
[comps setSecond:0];

NSDate *dateFromComps = [calendar dateFromComponents:comps]; 
4

1 に答える 1

2

これが正解です。文字列を個別に分離し、コンポーネントに入力する必要があります。

NSArray *results = [storeOpen componentsSeparatedByString:@":"];
if ([results count] == 3) {
    NSLog(@"1 - %d", [[results objectAtIndex:0] intValue]);
    NSLog(@"2 - %d", [[results objectAtIndex:1] intValue]);
    NSLog(@"3 - %d", [[results objectAtIndex:2] intValue]);


NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *comps = [calendar components: NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit fromDate:[NSDate date]];
[comps setHour:[[results objectAtIndex:0] intValue]];
[comps setMinute:[[results objectAtIndex:1] intValue]];
[comps setSecond:[[results objectAtIndex:2] intValue]];


NSDate *dateFromComps = [calendar dateFromComponents:comps];
于 2014-08-08T15:02:32.913 に答える