NSDate* day1
とNSDate* day2
があります。どのように私はをday1から年/月/日だけコピーし、day2からhour/minute/secondだけコピーすることができますか?NSDateを2つ組み合わせて新しいNSDateを作成する
6
A
答えて
15
unsigned unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit;
NSDateComponents *comps = [[NSCalendar currentCalendar] components:unitFlags fromDate:day1];
NSDate *day3 = [[NSCalendar currentCalendar] dateFromComponents:comps];
unitFlags = NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
comps = [[NSCalendar currentCalendar] components:unitFlags fromDate:day2];
day3 = [[NSCalendar currentCalendar] dateByAddingComponents:comps toDate:day3 options:0];
源:
0
NSCalendarを作成し、最初と2番目の日付から日付コンポーネントを取得し、NSCalendarの新しい日付コンポーネントを使用して日付を取得する必要があります。
使用NSCalendar方法
– components:fromDate:
– dateFromComponents:
と対応する単位フラグ
NSUInteger unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit |NSSecondCalendarUnit;
1
darvids0nのようにコンパクトではありませんが、動作します。
NSDate* day1 = [datePicker dateValue];
NSDate* day2 = [NSDate date];
NSDateComponents *components = [[NSCalendar currentCalendar] components:NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit fromDate:day1;
NSInteger day = [components day];
NSInteger month = [components month];
NSInteger year = [components year];
components = [[NSCalendar currentCalendar] components:NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit |NSSecondCalendarUnit fromDate:day2];
NSInteger hour = [components hour];
NSInteger minute = [components minute];
NSInteger second = [components second];
NSDateComponents *comps = [[[NSDateComponents alloc] init] autorelease];
[comps setDay:day];
[comps setMonth:month];
[comps setYear:year];
[comps setHour:hour];
[comps setMinute:minute];
[comps setSecond:second];
NSCalendar *cal = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *day3 = [cal dateFromComponents:comps];
またはレコードの場合
NSDateFormatter *tempFormatter = [[[NSDateFormatter alloc]init]autorelease];
[tempFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSString* message = [NSString stringWithFormat:@"%04d-%02d-%02d %02d:%02d:%02d", year, month, day, hour, minute, second];
NSDate *day3 = [tempFormatter dateFromString:message];
0
は、ここにあなたが夏のIの問題を回避するには、この
NSDate *day3 =
[day2 dateByTakingComponents: NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit
fromDate: day1];
関連する問題
- 1. 2つのパンダデータフレームの2つの組み合わせを作成する
- 2. Delphi VCLで2つのコントロール(TEditおよびTTrackBar)を組み合わせて新しいコンポーネントを作成する
- 3. 2つのリストを組み合わせて辞書を作成する
- 4. VBA:2つのセルを組み合わせてシリーズ名を作成する
- 5. Python- 2つのリストを組み合わせてリストのリストを作成する
- 6. ナイフボールトの更新と組み合わせてナイフec2を作成
- 7. 更新を組み合わせる&SQL文SQL文を作成
- 8. 2つのNSDateの間隔
- 9. 2つのタブスクリプトを組み合わせて1つにする
- 10. dictを他の2つのdictを組み合わせて作成
- 11. NSDateがメモリリークを作成する
- 12. NSDateオブジェクトをdatepicker dateと組み合わせたカスタム日付に設定しますか?
- 13. 2つのリストの組み合わせ
- 14. RxJs Observablesのリストを作成して組み合わせる(Firebase)
- 15. 単語を組み合わせてコーパスを作成する
- 16. geom_pointとgeom_lineをggplot2のggplot2と組み合わせて2つのグループ化要因を組み合わせる
- 17. 2-組み合わせC++
- 18. すべての組み合わせを作成するJava
- 19. 作成組み合わせPyspark
- 20. タイムゾーンに基づいてNSDateオブジェクトを作成します
- 21. 例外と組み合わせてクラスを作成する
- 22. 2つのディレクティブをまとめて組み合わせる
- 23. 2つのJavascriptをまとめて組み合わせる
- 24. 2バイトを組み合わせる
- 25. 2つの合計結果を組み合わせる?
- 26. 配列と組み合わせパターンの組み合わせを見つける
- 27. 角度2 ngIfとngの組み合わせについて
- 28. 2つのテーブルを1つのクエリに組み合わせる
- 29. Odoo - 2つのフィールドを1つに組み合わせる
- 30. SQLでピボットする2つの列を組み合わせる
のようにそれを呼び出すことができ、より一般的なアプローチ
ですcurrentCalendarをUTCタイムゾーンに設定することを推奨します。 –